【问题标题】:AS3 Signals: Is there a way to know when a signal has already dispatched?AS3 Signals:有没有办法知道信号何时已经发送?
【发布时间】:2012-12-03 19:24:46
【问题描述】:

我在我的最新项目中使用了 Robert Penner 的 Signals。效果很好。

https://github.com/robertpenner/as3-signals

现在我需要一种方法来了解信号 hal 何时已在过去某处发送。例如,我有一个类在完全加载时分派信号,但我需要在同一个类中设置一些标志,以允许某些方法仅在事件已被分派时才能工作。

所以,快速快速的解决方案是在事件处理程序中添加一个布尔值:

isLoaded = true;

但我想知道 Signal 类中是否已经实现了一些我可以使用的东西。

【问题讨论】:

    标签: actionscript-3 events signals


    【解决方案1】:

    我在 Penner 的原始类中添加了 RelaxedSignal 类。他们还没有被合并到他的代码库中,并且怀疑他们永远不会。不知道为什么,我问了他好几次,他都没有反应。

    无论如何,如果您订阅了一个已经发送的信号,它将立即为订阅者调用监听器。我专门为像您这样的情况创建了这个,您希望对可能已经发生或尚未发生的事件做出响应。

    信号很棒,但确实缺少一个功能:在发送信号后订阅信号的能力。

    解释:http://creynders.wordpress.com/2011/10/06/relaxedsignals/

    来源:https://github.com/creynders/as3-signals

    例如:https://github.com/creynders/RelaxedSignalsDemo

    【讨论】:

    • 谢谢,这正是我所需要的。我相信它也会对其他人有用。
    • 您的 Signals 分支是否有 SWC 文件?
    • 不,我不知道。从源代码编译有问题吗?
    • 不...我想我可以用 Flash Builder 做到这一点,但我从来没有开始使用 Flex。
    • 您可以在此处找到 .swc:github.com/creynders/as3-signals/downloads 它包括原始信号的 v0.9-BETA
    【解决方案2】:

    我认为你会在你的类中添加一个布尔值,我认为你不应该让它依赖于信号,因为也许你稍后会将它更改为正常事件,然后你就搞砸了。 isLoaded 布尔值应该是加载程序的一部分,而不是信号/事件。

    【讨论】:

    • 没错,isLoaded 布尔值应该是加载类的一部分。但这是一个例子。有没有办法知道信号库中何时已经分派了一个事件?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    相关资源
    最近更新 更多