首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于侦听警报框按钮的Flex AsyncToken

用于侦听警报框按钮的Flex AsyncToken
EN

Stack Overflow用户
提问于 2012-03-25 00:05:47
回答 1查看 211关注 0票数 1

我可以使用AsyncToken监听组件之间的警报按钮单击吗?基本上,我希望有一个方法来打开一个带有按钮的警报,并让它返回一个AsyncToken,这样调用该方法的其他组件就可以监听按钮单击。

示例:

代码语言:javascript
复制
var token:AsyncToken=methodThatOpensAlert();
token.addResponder(new mx.rpc.Responder(buttonClick));

有什么方法可以做到这一点?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-25 03:15:41

你也许可以使用AsyncToken来实现这一点,但你也可以只注册你从弹出窗口中发送的自定义事件,这是一种更简洁的方法。实际上,你有两个相对干净的选择,我能想到。1对于弹出窗口中的不同按钮单击,创建弹出窗口的一个实例并添加侦听器,然后调用PopUpManager.addPopUp;或者执行PopUpManager.createPopUp并保留对返回的显示对象(它创建的弹出窗口的实例)的引用,然后添加侦听器。2您在弹出窗口中创建了两个类型为函数的属性,将它们用作回调,因此在创建弹出窗口时设置okClickedFunction和cancelClickedFunction (或任何按钮),然后在弹出窗口中将cilck处理程序放在按钮上,检查是否设置了适当的回调函数,如果设置了,则调用它,如下所示

代码语言:javascript
复制
if(okClickedFunction)
    okClickedFunction();

如果您有特定的需求,让我知道您认为必须使用AsyncToken,但从文档中可以看出,它似乎严格意义上是要与其他RPC方法一起使用,而且很多属性都是只读的。

编辑:

SomeUtilClass.as

代码语言:javascript
复制
private static function methodThatOpensAlert():CustomAlert
{
    return PopUpManager.createPopUp(Application.application, CustomAlert) as CustomAlert;
}

CustomAlert.as

代码语言:javascript
复制
[Event(type="flash.events.Event", name="button1Clicked")]
[Event(type="flash.events.Event", name="button2Clicked")]

private function button1Clicked_handler(event:MouseEvent):void
{
    dispatchEvent(new Event("button1Clicked", true));
}
private function button2Clicked_handler(event:MouseEvent):void
{
    dispatchEvent(new Event("button2Clicked", true));
}

ThingThatUsesAlert

代码语言:javascript
复制
var ca:CustomAlert = SomeUtilClass.methodThatOpensAlert();
ca.addEventListener("button1Clicked", button1ClickHandler);
ca.addEventListener("button2Clicked", button2ClickHandler);

我相信鼠标事件在默认情况下仍然是冒泡的,所以你可以在弹出窗口中听到点击事件,然后使用event.target来确定它是否是你感兴趣的按钮之一。

如果你能理解这个或者需要更多的信息,请让我知道。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9853172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档