2011-02-23 78 views
0

直升機大家好,我有一個按鈕(名稱:closeinfo)一moviclip內(名稱:信息面板),使用即時通訊這個代碼把行動,該按鈕:如何控制AS3上的影片剪輯中的按鈕動作? (閃存)

infopanel.closeinfo.addEventListener(
    MouseEvent.MOUSE_UP, 
    function(evt:MouseEvent):void { 
     trace("Im hit!!!"); 
    } 
); 

的代碼是在主時間表,但它不起作用,什麼即時做錯了?謝謝!

錯誤日誌:

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
    at main_fla::MainTimeline/frame2() 
    at flash.display::Sprite/constructChildren() 
    at flash.display::Sprite() 
    at flash.display::MovieClip() 
+0

你能發表更多的代碼嗎?錯誤1009意味着您正在嘗試訪問尚未創建的某個變量。嘗試編寫trace(infopanel,infopanel.numChildren);並查看輸出結果:如果numChildren大於0,請嘗試跟蹤「infopanel.closeinfo」 – www0z0k 2011-02-23 04:04:45

回答

0

你給你的按鈕實例,它位於內部「信息面板」的影片剪輯實例名稱「closeinfo」?它看起來好像你忘了這麼做。命名規則看起來不利於常見的命名類和變量通常是在駱駝情況下完成的,但類以大寫字母開頭,而實例/變量沒有(IE:camelCaseVar,CamelCaseClass)。但是,不遵循約定不會導致任何錯誤。

最後一個問題:函數閉包會讓你的代碼非常難以管理。我建議你避免使用它們,尤其是當你添加事件監聽器時,你可能想最終刪除它們。