2011-02-23 51 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)。但是,不遵循约定不会导致任何错误。

最后一个问题:函数闭包会让你的代码非常难以管理。我建议你避免使用它们,尤其是当你添加事件监听器时,你可能想最终删除它们。