Flash AS學習:執行個體分析 this的用法

來源:互聯網
上載者:User
   引用對象或影片剪輯執行個體。

  1、在附加到按鈕的 on 事件處理函數動作中,this 引用包含該按鈕的時間軸。   執行個體1-1:在舞台上放一個按鈕。在跟時間軸上定義一個變數var i:Number=0 ,在按鈕上輸入下列語句
on(press){
trace(this)//輸出的結果將是_level0,就是說這裡的this就是對根時間軸的引用
trace(this.i)//輸出的將是0
}  執行個體1-2:在舞台上放一個MC。並且輸入執行個體名my_mc ,在該MC中放一個按鈕,在跟時間軸上定義一個變數var i:Number=0 ,在按鈕上輸入下列語句
on(press){
  trace(this)//輸出的結果將是_level0.mc,就是說這裡的this就是對根時間軸的mc對象的時間軸的引用。
trace(this.i)//輸出的將是undefined,因為該MC的時間軸沒有定義i
}  強調:在附加到按鈕的 on 事件處理函數動作中,this 引用包含該按鈕的時間軸
  2、在附加到影片剪輯的on() onClipEvent()事件件處理函數動作中,this 引用該影片剪輯自身的時間軸。
  執行個體2-1:在舞台上放一個MC,並且輸入執行個體名my_mc,為該MC附加以下動作:
on(press){
trace(this)//輸出的的將是_level0.mc,說明this是MC本身,而非_level0說明附加到MC的on()控制代碼與附加到button的on()控制代碼是不同的
}  執行個體2-2:在舞台上放一個mc,並且輸入執行個體名為my_mc ,為該MC附加以下動作:
onClipEvent(load){
trace(this)//輸出_level0.mc,說明現在的this是MC本身
}
//繼續輸入下列語句
onClipEvent(enterFrame){
this._x+=2//現在MC向右運動了,何也?因為this是mc本身
}  3、按鈕事件寫在楨上。{}中的thsi指向按紐本身
  執行個體3-1 在舞台上放一個按鈕,並且輸入執行個體名button,在楨上輸入以下動作:
button.onPress=function(){
trace(this)//輸出的是_level0.button,而非_level0,說明寫在楨上與寫在按鈕上是不同的
}  執行個體3-2 在舞台上放10個按鈕,並且輸入執行個體名button0....10,在楨上輸入以下動作:this["button"+i].onPress=function(){//最前面的這個this指根時間軸_level0, 用this的原因是因為要引用button, 這個是必須的,而執行個體3-1也可以this.button.onPress=function(),但往往我們可以省略.
trace(this)//現在是點擊哪個MC,輸出哪個MC,因為this是指向this["button"+i]
}  4、MC事件寫在楨上。同按鈕事件寫在楨上是一樣的。
  5、定義的函數中的this,指向函數所在的時間軸。
  執行個體5-1 在楨上輸入下列動作function go(){
var i=0
trace(this)//輸出的將是_level0,因為函數go就在跟時間軸
trace(this.i)// 輸出的將是undefined,因為i是局部變數,只在本語句塊有效,不可以訪問
}
go()    另外:利用this還可以告知我們路經,比如用ScrollPane組件,用該組件顯示一張圖片,打算在跟時間軸上控制該圖片的透明度,但不明確該圖片MC的路經,該怎麼辦?現在詳細說明下該執行個體的完整過程(因為擔心有人不瞭解該組件的用法)
  步驟:
  1、匯入一張圖到庫中。
  2、建立一個MC,將庫中的圖拖到MC中.如圖:

   3、為該MC加上串連,右擊庫中的mc,點串連,進行如圖設定。

   4、回到主情境,將庫中的ScrollPane組件拖到情境中,並且用變形工具適當放大

   5、選中該組件,開啟屬性面板,如圖輸入:

   6、現在測試,在組件中可以顯示圖片了.但沒有控制其透明度,解決: 請雙擊庫中的MC,在該MC所在的時間軸的第一楨輸入trace(this),測試輸出_level0.path.spContentHolder

   7、在跟時間軸輸入this.path.spContentHolder._alpha=50,看看,你成功了吧!

點擊這裡下載源檔案



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。