AS3调用一个刚刚添加的元素

时间:2011-05-16 16:41:37

标签: actionscript-3 call

我正在将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引用。

感谢您的任何建议!

2 个答案:

答案 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);

当引用明显添加到舞台上的动画片段时,弹出“可能的未引用对象”错误时,这对我有用了好几次