2013-12-21 59 views
0

我有3張,我不顯示整個代碼,這太huge.and的主要代碼在什麼情況下,gotoAndStop不工作

gotoAndStop(2); 
trace('frame:',currentFrame) 

輸出應該是框架:2

但實際上它的框架:1,並在幀2的對象不能被加載併成爲空
沒有編譯器錯誤

當我刪除一些代碼後,應用程序有時會經營權,並在框架2
停止 這不應該發生,因爲任何代碼後它不應該涉及輸出
雖然我可以解決這個時,我刪除第一幀,但它是相當危險的繼續發展。
任何想法,爲什麼會發生這種情況?


在繼續之前,我應該提到我實際上由於空對象而導致編譯器錯誤,但它不是主要觀點。 而我有一個叫做主機的類,代碼gotoAndStop也是在構造函數的第一位。 我已經把優先功能在主機上,並且輸出

stopping at frame: 2 Called from: Error 
    at host/gotoAndStop() 
    at host() 
frame: 1 
TypeError: Error #1009: Cannot access a property or method of a null object reference 
    at host() 

然後我嘗試了方法2.創意魔術說,結果顯示

stopping at frame: 2 Called from: Error 
    at host/gotoAndStop() 
    at host() 
displaying frame: 1 
frame: 1 
TypeError: Error #1009: Cannot access a property or method of a null object reference 
    at host() 
displaying frame: 2 

這很讓我困惑正在發生的事情的框架,我不知道原因就像你說老版本的SDK,謝謝你的幫助

回答

0

你的問題可以是你寫錯誤的代碼,或者你使用舊的Flash SDK。

在第一種情況下,您應該檢查您是否調用MovieClip的gotoAndStop(),play()或gotoAndPlay()方法。要做到這一點,你可以編輯類的MC的:

  • 在Flash Professional在庫面板上的MC右鍵單擊
  • 選擇「編輯類」
  • 在你選擇的IDE添加下列功能

    override public function gotoAndStop(frame:Object, scene:String = null):void 
    { 
        trace("stopping at frame:", frame, "Called from:", new Error().getStackTrace()); 
        super(this).gotoAndStop(frame, scene); 
    } 
    

它將跟蹤時,被稱爲gotoAndStop()方法和誰把它稱爲。它會讓你看看框架是否被其他東西設置爲框架。我建議你重寫play()和gotoAndPlay()函數。

如果你被這段代碼嚇倒了,你可以在MC的每一幀上添加一個trace(),因爲它只有3幀,所以不應該做太多的工作。你的蹤跡可能看起來像這樣:

trace("displaying frame:", this.currentFrame); 

其他可能的原因可能在於你正在使用的SDK。我自己有一個奇怪的bug,當加載的MC不會聽stop(),gotoAndStop()等函數。通過升級SDK解決了該問題:http://www.adobe.com/devnet/flex/flex-sdk-download.html
關於如何替換舊SDK的說明也是如此。

+0

謝謝,我更新了主題 – sbk201

相關問題