addEventListener不起作用

时间:2011-12-10 13:58:11

标签: actionscript-3 flex actionscript

protected function init(event:FlexEvent):void
{
    btnBack.addEventListener(MouseEvent.CLICK, viewOverview);
}

protected function viewOverview(event:MouseEvent):void
{
    dispatchEvent( new ChangeSelectedIndex(1,ChangeSelectedIndex.index_passed));
}

我尝试像这样添加eventlistener,但没有任何反应。我已经检查过,并且从creationcomplete语句中调用了init函数。您可以在下面看到包含HGroup的按钮。

<s:HGroup x="116" y="0" width="200" height="25">
    <s:Label id="lblOverviewTitle" fontFamily="Verdana" fontSize="24" fontWeight="bold"
             text="Artist Details"/>
    <s:Button id="btnBack" label="Back" />
</s:HGroup>

1 个答案:

答案 0 :(得分:2)

为什么需要在ActionScript中添加事件列表?您可以在MXML中执行此操作:

<s:HGroup x="116" y="0" width="200" height="25">
    <s:Label id="lblOverviewTitle" fontFamily="Verdana" fontSize="24" fontWeight="bold"
             text="Artist Details"/>
    <s:Button id="btnBack" label="Back" click="viewOverview(event)"/>
</s:HGroup>

正如对主要问题的评论中所述,似乎您在创建组件之前尝试将事件侦听器添加到btnBack。您应该在initialize事件中添加事件侦听器,因为在触发createChildren()之后初始化触发。

如果您正在构建Spark组件,并且btnBack是外观部件,则应使用partAdded()方法添加事件侦听器。