如何在动作脚本3中添加事件(释放或点击)之前检查组件(移动剪辑或按钮)isInitilazed
?
答案 0 :(得分:1)
我可以用更一般的术语询问你正在尝试做什么?
如果您只想避免空引用错误,只需检查您用于null
的引用(变量):
if (_myComponent != null)
{
// add listeners
}
如果由于某些其他原因您确实需要知道该组件是否已在您执行此操作之前已初始化,则需要它为此分派某种事件(Flex的UIComponents
调度FlexEvent.INITIALIZE
事件,但我假设你没有使用Flex)或者设置一个“初始化”属性,我不太确定标准的Flash组件(我在这里看the Button
documentation作为参考。)你可以当然,在实现initialized
属性的情况下,为自己使用的任何组件创建一个自定义子类,但我不确定如何为任何标准Flash组件实现这一点。我也不太清楚你在这个上下文中的“初始化”是什么意思:))
答案 1 :(得分:0)
也许是这样的?
if (mcWithComponents.stage) doStuff();
mcWithComponents.addEventListener(Event.ADDED_TO_STAGE, doStuff);
private function doStuff(e:Event = null):void
{
mcWithComponents.myButton.addEventListener(MouseEvent.CLICK, buttonClicked);
}
或者直接在movieclip的类中添加侦听器。
public function mcWithComponents() // constructor
{
if (stage) init();
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
myButton.addEventListener(MouseEvent.CLICK, buttonClicked);
}