2011-04-03 88 views
0

我嘗試創建一個選項卡界面: enter image description here爲什麼我無法停止Flash時間軸的第1幀?

因此,在第1幀我加

this.stop(); 

每一層上,但運行時,它說:

1180: Call to a possibly undefined method addFrameScript. 

main.as目前無用的,但我可以告訴它的情況下,它會影響:

package { 
    import flash.display.Sprite; 
    import flash.events.*; 
    import fl.controls.CheckBox; 

    public class main extends Sprite {  

     public function main() { 
     addEventListener(Event.ADDED_TO_STAGE, init);  
     } 

     public function init(e:Event):void { 
     removeEventListener(Event.ADDED_TO_STAGE, init); 
     }   

     public function hello(target:MouseEvent) { 
     trace(target); 
     } 
    }  
} 

回答

2

不要使用FrameScripting,當你有一個文檔類不使用它。使用Event.ENTER_FRAME來確定您的播放頭在哪裏。比你可以使用FrameLabels使其靈活管理。 但在上面的代碼中,要擴展雪碧,所以沒有發揮() - 和stop() - 它的框架可以執行方法。此外,addFrameScript()方法不可用,因此請嘗試擴展MovieClip,該方法應該可行。

問候 菲利普

+0

你的解釋是有點混亂。 – goliatone 2011-04-03 10:43:23

+0

我同意菲利普與從文檔類重放頭控制代碼混合幀腳本是一個好主意。如果你這樣做,你必須非常清楚腳本執行的順序和管理潛在的衝突。如果您對此不太在意,我可以保證您會在播放頭沒有移動時出現錯誤,或者出現錯誤的幀。 – 2011-04-03 13:03:35

+0

我在學習Flash,這就是爲什麼我這樣做,但下一步我會嘗試你的建議謝謝。 – user310291 2011-04-03 18:37:08

7

由於您的文檔類擴展Sprite,它並沒有停止方法。 Sprite沒有時間軸或幀。如果要使用文檔類並在主時間軸上有多個框架,則應該擴展MovieClip。

所以,你可以改變這一點:

public class main extends Sprite { 

...這樣的:因爲它已經被告知

public class main extends MovieClip { 
+0

與Lars一致。連接至更多信息:http://www.ericd.net/2008/11/1180-call-to-possibly-undefined-method.html – nycynik 2011-08-29 16:20:58

+0

同意。這是這個問題最直接,最正確的答案。 – 2012-12-12 19:39:03

2

,你需要擴展影片剪輯有一個時間表。因此,在第1幀每一層上 也

我加

this.stop(); 

你不需要給每個層上添加上了句號。如果動作是在一個幀中定義的,則會影響該幀上的所有圖層。