【问题标题】:Flash Starling dispatching EventsFlash Starling 调度事件
【发布时间】:2011-11-07 19:50:51
【问题描述】:

实例化后是否可以将数据发送到八哥对象?
var mStarling:Starling = new Starling(StarlingClass, stage);

或者通过从主类调度事件,然后在八哥类中监听这些事件?

【问题讨论】:

标签: actionscript-3 events dispatch starling-framework


【解决方案1】:

我认为您不能在普通显示对象和八哥显示对象之间传递事件。这背后的主要原因是所有 Starling 显示对象都是在 GPU 上绘制的,或者更确切地说是 stage3d 。

Flash 中的正常事件会遍历整个显示列表。由于 stage3d 不是显示列表的一部分,我认为 stage3d 对象无法监听您的事件。

我建议您探索像 as3 signals 这样的选项来实现相同的目标。这应该可以工作,因为 as3 信号独立于显示列表层次结构。

【讨论】:

    【解决方案2】:

    您绝对可以使用 Starling 类来监听事件,就像在任何其他类中一样。

    例如,在八哥类中,您可以执行类似...

    this.addEventListener( "CustomEvent", PROCESS_METHOD );
    

    然后,在你的主类中你可以调用..

    dispatchEvent(new Event("CustomEvent"));
    

    如果您想在其中传递值,则需要将事件附加到 mStarling 可以访问的动态对象(例如 MovieClip)。或者,您实际上可以创建一个扩展 Event 的对象,而不是 new Event("CustomEvent");

    【讨论】:

    • 当监听事件时,我应该将事件分派给我分配了事件监听器的那个对象,就像这样。 mc.dispatchEvent(new Event("CustomEvent"));然后可能来自 mc 对象类 this.addEventListener("CustomEvent", PROCESS_METHOD);但是八哥对象和主舞台怎么能对同一个对象有关联呢?
    • 你在这里放了什么而不是thisthis.addEventListener ?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 2012-12-22
    • 2015-10-14
    • 1970-01-01
    相关资源
    最近更新 更多