我從AS2轉移到AS3,可能許多脂肪酶之前發現這種不兼容:AS3 - gotoAndStop立即行動
我以前經常這樣的代碼:
gotoAndStop(5);
trace(box); //where box is a movie on 5th frame
什麼是最簡單的方法如何在AS3中做到這一點。
我從AS2轉移到AS3,可能許多脂肪酶之前發現這種不兼容:AS3 - gotoAndStop立即行動
我以前經常這樣的代碼:
gotoAndStop(5);
trace(box); //where box is a movie on 5th frame
什麼是最簡單的方法如何在AS3中做到這一點。
沒有簡單的方法來做到這一點。
你需要做的是
設置爲當幀渲染
告訴它去所述框架(5)
力呈現給聽衆儘快發生stage.invalidate
。
與as2在一起的最重要的原因之一。 不要說as2更好,只需要更好一些,這是其中之一。我對此的看法是,as3並非真正處理時間表。
與AS2你
gotoAndStop(5);
trace(box);
不同,需要等待的時間線呈現AS3。
stage.addEventListener(Event.RENDER, onRenderStage);
protected function onRenderStage(ev:Event):void {
trace(this['box']);
}
gotoAndStop(5);
stage.invalidate();
我曾經在我的AS2的日子之一MovieMlip的不同幀中的不同資產,但要做到這一點在AS3太複雜享受到任何的好處。所以,雖然這將起作用,但我建議完全考慮一個不同的解決方案。或者堅持as2。
有一個簡單的方法來解決這個問題,但沒有證件:
addFrameScript(1, update);
gotoAndStop(2);
function update() {
trace(box); // outputs [object MovieClip]
}
請注意addFrameScript第一個參數是幀數,但它是從0開始,即0幀1,1是第2幀等等......第二個參數是你想要調用的函數。
AS3必須確定它在原始框架上的動作沒有鬆散的情況,這就是爲什麼它會在所有結束時執行動作......這是我猜測的JIT編譯的價格。 – Oldes