什么时候调用Event.ADDED_TO_STAGE?

时间:2015-12-14 14:37:22

标签: actionscript-3 stagevideo

我有这段代码:

addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);

这个事件何时被召集?我正在example project of StageVideo工作,但这并不容易。我正在使用flash pro。

2 个答案:

答案 0 :(得分:1)

如其名称所示,addedToStage事件为

  

将显示对象直接添加到舞台显示列表或通过添加包含显示对象的子树时调度。以下方法触发此事件:DisplayObjectContainer.addChild(),DisplayObjectContainer.addChildAt()。

希望可以提供帮助。

答案 1 :(得分:1)

每当调用Event.ADDED_TO_STAGEaddChild()时,都会调用

addChildAt()

为了确保舞台和父级在添加到舞台中的对象中可用,您在对象的构造函数中添加了Event.ADDED_TO_STAGE的侦听器,然后该对象是添加到舞台中,其Event.ADDED_TO_STAGE侦听器将被触发,该对象的舞台和父级将可用。

实施例

package {

import flash.display.Sprite;

public class Main extends Sprite {

    public function Main() {
        var textField:ChildTextField = new ChildTextField();
        textField.text = "Hello StackOverflow";
        addChild(textField);
    }
}
}

import flash.events.Event;
import flash.text.TextField;

class ChildTextField extends TextField {
    public function ChildTextField() {
        trace("(Stage (Before addChild):" + stage);
        trace("ChildTextField Parent (Before addChild): " + this.parent);
        addEventListener(Event.ADDED_TO_STAGE, initWhenAddedToStage);
    }

    function initWhenAddedToStage(e:Event):void {
        trace("Stage (After addChild): " + stage);
        trace("ChildTextField (After addChild): " + this.parent);
    }
}

输出:

[trace] (Stage (Before addChild):null
[trace] ChildTextField Parent (Before addChild): null
[trace] Stage (After addChild): [object Stage]
[trace] ChildTextField (After addChild): [object Main]