2012-05-16 57 views
0

我一直在創造一個超媒體播放器,和我得在那裏毛刺了一個階段,它顯然是一個...閃存CS5.5輸出錯誤

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
    at AvalancheCityHypermediaPlayer_fla::MainTimeline/fl_CustomMouseCursor() 

這裏是我的代碼:

import flash.events.Event; 

cust_cursor.mouseEnabled= false; 

cust_cursor.addEventListener(Event.ENTER_FRAME, fl_CustomMouseCursor); 

function fl_CustomMouseCursor(event:Event) 

{ 

    cust_cursor.x = stage.mouseX; 

    cust_cursor.y = stage.mouseY; 
} 

Mouse.hide(); 

我不知道爲什麼它不能正常工作,基本上當按鈕被上空盤旋,它意味着跳轉到幀2和停止,但跳轉到該幀,然後跳直1幀不停止在第2幀,並在第1幀停止。

回答

0

1。您的錯誤未產生行號。你(和我)會發現這對調試非常有用;如果在Flash IDE中,可以在SWF首選項下的Publish Settings中將其打開,標題爲「允許調試」。

2。此代碼是在類中還是在文檔代碼中(例如,Flash IDE「Actions」選項卡)?如果它在類中,請確保將階段的引用傳遞給類的構造函數,並將其分配給內部持久變量,以便fl_CustomMouseCursor可以解決該問題。默認情況下,類沒有引用舞臺的內部方式,我假設這就是產生#1009錯誤的原因。

例如,你的類構造函數中...

package com.example { 
    public class MyClass { 
     private var stage; 
     public function MyClass(arg) { 
      stage = arg; 
     } 
    } 
} 

而且外面實例化類時...

var myObj:MyClass = new MyClass(stage); 

3。如果你希望你的代碼停止框架上,用stop();gotoAndStop()

4。最後,如果您使用Flash IDE進行編譯,則可以對其進行調試,並確切瞭解運行時環境遇到問題時堆棧中的哪個變量。您可以從調試菜單或通過編譯control-shift-enter來訪問它。