actionscript-3 - Flex 4.6 检查 creationComplete 是否已经发生

标签 actionscript-3 flash apache-flex events flex4

在 AS3 中,我知道我可以通过在加载的 SWF 开头包含以下内容来检查该阶段是否可供外部加载的 SWF 访问:

if (stage) {
  this.init();
} else {
  addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
}

上述解决方案非常适合在执行这些行时检查程序是否可以访问该阶段,或者添加一个事件监听器来监听该阶段何时可以访问。

我试图在 Flex 4.6 的自定义组件中复制类似的情况。但是,我不是在监听舞台的存在,而是在寻找组件的 creationComplete 事件是否已被触发。

creationComplete事件是否触发,没有触发则监听,是否有类似的解决方案?

最佳答案

我只是 Windows grepped 4.6 源代码并且 UIComponent 在初始化设置为 true 时调度创建完成事件所以 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/core/UIComponent.html#initialized应该可以。

编辑 作为对评论的回应,初始化被调用但设置初始化为真在第 9 步没有发生,它实际上是在 UIComponent 中调度 CREATION_COMPLETE 的地方看到我从 UIComponent 的 4.6 源代码中提取的这个片段:

/**
     *  A flag that determines if an object has been through all three phases
     *  of layout: commitment, measurement, and layout (provided that any were required).
     *  
     *  @langversion 3.0
     *  @playerversion Flash 9
     *  @playerversion AIR 1.1
     *  @productversion Flex 3
     */

/**
 *  @private
 */

public function set initialized(value:Boolean):void
{
    _initialized = value;

    if (value)
    {
        setVisible(_visible, true);
        dispatchEvent(new FlexEvent(FlexEvent.CREATION_COMPLETE));
    }
}

如果您不相信我,请按 Ctrl+Shift+T 在 UIComponent 中键入并搜索“Variables: Creation”,您将得到一个注释 block ,该注释 block 开始了调度启动事件的部分和一些变量标记那些已完成的事件已设置。 INITIALIZE 事件发生在我引用的 setter 下方的不同 setter 中。

public function set processedDescriptors(value:Boolean):void
{
    _processedDescriptors = value;

    if (value)
        dispatchEvent(new FlexEvent(FlexEvent.INITIALIZE));
}

关于actionscript-3 - Flex 4.6 检查 creationComplete 是否已经发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11566776/

相关文章:

android - 从 ActionScript3 中的 If 语句中跳出?

javascript - 如何使用客户端 javascript 模拟人类行为来玩 Flash 游戏?

actionscript-3 - AS3 setChildIndex 到前面

actionscript-3 - 在为大量铅笔工具绘制的图形制作动画时,如何保持高帧率?

javascript - swfObject 嵌入对象在 ie11 中不起作用

jquery - 查找可点击的世界地图

apache-flex - 有没有办法通过 Flex 比较文本文件?

apache-flex - 什么导致 Flash 错误 #2012(无法实例化类)?

apache-flex - 比较 FLEX、JavaFX 和 Silverlight

apache-flex - 是否有组件不再显示在屏幕上时触发的事件?