星期一, 8月 30, 2010

AS3: 找到最高圖層深度(getNextHighestDepth)

在以前AS2的時候,有個語法可以找到指定物件的最高圖層深度:
this.getNextHighestDepth();
然而,當我們改用AS3的時候就發現…再也沒有這個功能了!
因為聽說Flash會自動幫我們排序!聽起來真的是很聰明!
但它還是沒有辦法把我們想要的東西放到最上面的圖層!
只要有東西擋在眼前,我們就會覺得很不舒服!
所以我們找到了可以用的方法!
假設我們希望topMovieClip可以在最上面的話:
//用「numChildren-1」找到母影片片段(parent)的最高深度
var highestDepth:uint=topMovieClip.parent.numChildren-1;
//用setChildIndex來設置最高深度
topMovieClip.parent.setChildIndex(topMovieClip,highestDepth);
相關連結:http://space.flash8.net/space/?246908/viewspace-382644.html

AS3: Flash先暫停幾秒後再播放

不止是AS2可以先暫停幾秒後再播放,AS3同樣也可以!怎麼做呢?
假設我們要暫停8秒鐘再繼續:

//先暫停在目前的時間軸上
stop();

//新增一個Timer(mcTimer)
//用Timer宣告我們要在8秒後做某件事情「一次」
var mcTimer:Timer = new Timer(8000,1);

//監聽這個Timer(mcTimer)時間到了要做什麼事
mcTimer.addEventListener(TimerEvent.TIMER, timerHandler);

//其實要做的事就只有一個:play();
function timerHandler(e:TimerEvent):void {
play();
}

//開始讀秒(1秒、2秒、…)
mcTimer.start();