【发布时间】:2012-07-31 16:12:49
【问题描述】:
我正在构建一个使用 SWFAddress 的 Flex 应用程序。每当我通过 SWFAddress 的 SWFAddress.setValue() 方法更新被劫持的 URL 时,我注意到它会触发 SWFAddressEvent.CHANGE 事件,导致我的页面再次经历更新周期。
在 SWFAddress 中是否有一种方法可以“静默”更新被劫持的 URL,从而不调度 SWFAddressEvent.CHANGE 事件?
我现在能想到的唯一解决方法是删除事件侦听器,更改 URL,然后将其添加回来。但这似乎……真的……效率低下。有什么想法吗?
感谢您的宝贵时间。
【问题讨论】:
-
嘿,刚刚检查了源代码,里面没有任何东西可以阻止事件,如果它是一个新值,那么事件就会被调度(看起来它在初始化期间跳过了这个,但总的来说其他情况下,如果发生更改,则会发送)。您可以修改源,因为它可用并将您自己的布尔值添加到 SWFAddress 以阻止它调度事件,否则就像您已经说过删除/添加侦听器是一种选择,如果它只有一个对象添加/删除了侦听器我不'认为性能不会受到影响。
-
@shaunhusain 感谢您的调查。这就是我最终做的事情。如果您想剪切并粘贴您的评论作为答案,我会接受。
标签: actionscript-3 flash apache-flex actionscript swfaddress