我有这段代码:
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
这个事件何时被召集?我正在example project of StageVideo工作,但这并不容易。我正在使用flash pro。
答案 0 :(得分:1)
如其名称所示,addedToStage
事件为
将显示对象直接添加到舞台显示列表或通过添加包含显示对象的子树时调度。以下方法触发此事件:DisplayObjectContainer.addChild(),DisplayObjectContainer.addChildAt()。
希望可以提供帮助。
答案 1 :(得分:1)
Event.ADDED_TO_STAGE
或addChild()
时,都会调用 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]