Apache flex 如何在flex中分派自定义事件
如何在flex中分派自定义事件 在我的主mxml文件中,我将此代码用于分派此函数Apache flex 如何在flex中分派自定义事件,apache-flex,flex3,flex4,flexbuilder,Apache Flex,Flex3,Flex4,Flexbuilder,如何在flex中分派自定义事件 在我的主mxml文件中,我将此代码用于分派此函数 private var ageVerifyMessage:AgeVerify = new AgeVerify(); public function onAgeVerifyFailed(event:ControlManagerEvent) : void { ageVerifyMessage.visible = true; return; }// end functio
private var ageVerifyMessage:AgeVerify = new AgeVerify();
public function onAgeVerifyFailed(event:ControlManagerEvent) : void
{
ageVerifyMessage.visible = true;
return;
}// end function
在controlmanagerevent中,我使用了此代码
private function getUserDetailsHandler(event:ResultEvent) : void
{
userDetails = ResponseParser.parseUserDetails(event.result as Object);
if (!userDetails || !userDetails.age)
{
if (_flashVars.birth_date && _flashVars.birth_date != "" && _flashVars.birth_date.toString().split("/").length == 3)
{
reportConnectedUser();
}
else
{
dispatchEvent(new ControlManagerEvent(ControlManagerEvent.onAgeVerifyFailed));
}
}
else
{
reportConnectedUser(userDetails.age);
}
return;
}// end function
private var _controller:IControlManager;
public function initApp() : void
{
_controller.addEventListener(ControlManagerEvent.onServerStatusChange, onServerStatusChange);
_controller.addEventListener(ControlManagerEvent.onSelfCamFailed, onSelfCamFailed);
_controller.addEventListener(ControlManagerEvent.onNoCamerasFound, onNoCamerasFound);
_controller.addEventListener(ControlManagerEvent.onAgeVerifyFailed, onAgeVerifyFailed);
_controller.initController();
return;
}// end function
<local:AgeVerify horizontalCenter="0" id="ageVerifyMessage1" verticalCenter="0" visible="false"/>
私有函数getUserDetailsHandler(事件:ResultEvent):void
{
userDetails=ResponseParser.parseUserDetails(event.result作为对象);
如果(!userDetails | |!userDetails.age)
{
如果(\u flashVars.birth\u date&&u flashVars.birth\u date!=“”&&u flashVars.birth\u date.toString().split(“/”)。长度==3)
{
reportConnectedUser();
}
其他的
{
dispatchEvent(新建ControlManagerEvent(ControlManagerEvent.onAgeVerifyFailed));
}
}
其他的
{
reportConnectedUser(userDetails.age);
}
返回;
}//端函数
专用变量控制器:IControlManager;
公共函数initApp():void
{
_controller.addEventListener(ControlManagerEvent.onServerStatusChange、onServerStatusChange);
_controller.addEventListener(ControlManagerEvent.onSelfCamFailed,onSelfCamFailed);
_controller.addEventListener(controlmanagervent.onNoCamerasFound、onNoCamerasFound);
_controller.addEventListener(ControlManagerEvent.onAgeVerifyFailed,onAgeVerifyFailed);
_controller.initController();
返回;
}//端函数
我想问一下我遗漏了什么,为什么我的customevents不工作?从你的代码中我可以看到你正在监听
\u controller
的事件,但是分派事件的对象不是\u controller
,而是这个似乎\u controller。分派事件(YourEvent)
应该可以工作
或者,我假设您没有使用任何事件框架(如Parsley或Swiz),您的_控制器应该是组件树中的根:
Application
IControlManager(_controller)
HBox
YourComponent
当您在组件中调度冒泡事件时,您的_控制器将可以调用相应的侦听器。@constantiner我使用它就像使用公共函数initApp():void{u controller.addEventListener一样(ControlManagerEvent.onAgeVerifyFailed,onAgeVerifyFailed);其中private var _controller=Icontrolmanager@Constantiner这意味着我应该像这样编辑代码。addEventListener(ControlManagerEvent.onAgeVerifyFailed,onAgeVerifyFailed);@Constantiner它不起作用,在我的代码中,我使用此代码来显示ageverify(ageverify是我的自定义组件)当我使用id ageverifymessage1时,正如您告诉我重命名id名称这是代码。您认为id名称应该是ageVerifyMessage而不是ageverifymessage1吗?如果您的答案是肯定的,我必须告诉您,如果我这样做,我会收到错误消息,说“与命名空间内部的定义ageVerifyMessage存在冲突”。很难阅读这种u非格式代码。请将此代码添加到原始问题。事件(类型:String,气泡:Boolean=false,可取消:Boolean=false)
,将气泡设置为true
。