我正在将movieclip元素(“lastSlide”)添加到另一个movieclip元素(“endLogoButton”)。添加的元素有一个子节点,它是一个按钮(“endLogoButton”)。我怎么称呼那个按钮?
mcSlideHolder.addChild(lastSlide);
/*mcSlideHolder.getChildByName("endLogoButton").buttonMode = true;;
mcSlideHolder.getChildByName("endLogoButton").mouseChildren = false;
mcSlideHolder.getChildByName("endLogoButton").useHandCursor = true;*/
lastSlide.endLogoButton.addEventListener(MouseEvent.CLICK, linkClick);
作为一个初学者,我正在挣扎......但是无法让它发挥作用...... 它总是告诉我无法访问Nullobject引用。
感谢您的任何建议!
答案 0 :(得分:3)
您可以“深入”嵌套对象以获取按钮实例,也可以在将按钮实例添加到其父容器之前将其添加到按钮实例,然后让其单击事件冒泡。
我在理解嵌套在你的案例中的内容时遇到了一些麻烦,但我看到你正在尝试使用getChildByName。 getChildByName只能通过其实例名称获取直接子项(不是子项的子项)(不是它的变量名)。
挖掘示例: lastSlide.getChildByName(“endLogoButton”)。addEventListener(MouseEvent.CLICK,linkClick);
或
lastSlide.name =“myLastSlide”; mcSlideHolder.getChildByName(“myLastSlide”)。getChildByName(“endLogoButton”)。addEventListener(MouseEvent.CLICK,linkClick);
如果在Flash IDE中以可视方式将lastSlide放置在舞台上,则可以在属性面板中设置实例名称myLastSlide,而不是在as3中设置name属性。
答案 1 :(得分:2)
或者可能:尝试将“lastSlide”转换为MovieClip,如:
MovieClip(mcSlideHolder.getChildByName("lastSlide")).getChildByName("endLogoButton").addEventListener(MouseEvent.CLICK, linkClick);
当引用明显添加到舞台上的动画片段时,弹出“可能的未引用对象”错误时,这对我有用了好几次