处理来自单个侦听器的多个事件
我想要一个针对多个事件的事件侦听器,具体取决于
我想单独处理它们的事件类型。
类似于 Swiz 框架 请参阅:“处理多个事件”来自单一方法'
我有一段代码,如
var toolOptions:UIComponent=ToolOptions.createToolOptions(type);
if (options != null)
{
options.addEventListener(Event.SELECT,toolOptionSelectedHandler);
someViewComponent.addOptions(toolOptions);
}
// handle depending on event type
private function toolOptionSelectedHandler(event:*):void
{
//handle depending on type of event fired
// type cast event depending on type and retrieve VO from event
//and send handle it..
//SomeToolObj.handle(event.VO);
}
上面的 toolOptions 是一个 mxml 组件,它是基于动态创建的上
'类型'。
另外,应该从组件中调度哪种类型的事件?例如:Event.SELECT
更准确地说,上面的内容基本上是工具栏所必需的。
当用户选择一个工具时,他会看到该工具的选项,当他选择选项时,
工具应该将它们应用到视图上的对象。
有更好的方法来做同样的事情吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这就是我的理解:
你有不同的工具。每个工具都有一个选项列表。您单击一个选项,单个事件处理程序应根据该选项执行某些操作。
使用属性
optionType
创建自定义事件OptionEvent.SELECT
。当用户选择选项时,像这样调度事件:
像您一样监听事件:
通过确定选项类型来区分选项类型:
更新 - 如何设置选项值列表在选项事件中:
That's what I understand:
You have different tools. Each of the tools has a list of options. You click an option, and a single event handler should perform some action depending on the option.
Create a custom event
OptionEvent.SELECT
with the propertyoptionType
.When the user selects the option, dispatch the event like this:
Listen to the event like you do:
Distinguish the type of option by determining the option type:
UPDATE - How to set up a list of option values in OptionEvent:
您可能还想尝试这样的事情:
http://blog.iconara.net/ 2008/03/30/separating-event-handling-from-event-filtering/
我已经通过使用带有链接的责任链完成了一个让我更满意的解决方案具有单独的 certainResponsibility 和 meetResponsibility 方法,其中在创建链接时存储特定事件数据。如果我们找到它与传递到链中的事件之间的匹配,那么我们调用 meetResponsibility。否则,我们调用链中的下一个链接。
有关 COR 的更多信息,请查看 http://www.as3dp.com/2008/01/14/actionscript-30-chain-of-responsibility-design-pattern-decoupling-request-and-request-handler/
You may also want to try something like this:
http://blog.iconara.net/2008/03/30/separating-event-handling-from-event-filtering/
and I've done a solution I'm a bit more comfortable with by using a Chain of Responsibility with links that have separate determineResponsibility and meetResponsibility methods, where the specific event data is stored when the link is created. If we find a match between that and the event that gets passed into the chain, then we call meetResponsibility. Otherwise, we call the next link in the chain.
For more on COR, check out http://www.as3dp.com/2008/01/14/actionscript-30-chain-of-responsibility-design-pattern-decoupling-request-and-request-handler/