Event.ADDED_TO_STAGE--转
来源:互联网 发布:王军邦 气象数据 编辑:程序博客网 时间:2024/06/05 19:52
本来是想看Event.ADDED_TO_STAGE的,意外在天地会上看到元老们加该事件的方法,举一反三,觉得很多地方用三目确实很方便,代码如下:
public function Main():void
{
this.stage?jb():addEventListener(Event.ADDED_TO_STAGE,onJb);
}
private function onJb(_evt:Event):void
{
jb();
removeEventListener(Event.ADDED_TO_STAGE,onJb);
}
private function jb():void
{
init();
startGame();
}
Event.ADDED_TO_STAGE在自身的生成的flash要被别的调用时或调用外部SWF时,多需要加上该舞台事件,而不是直接stage.addeventlistener;
补充:键盘事件必须是stage.addEventListener(),而stage必须是在主类中应用才可以,否则报错无stage属性。
if (stage) {
stage.addEventListener(KeyboardEvent.KEY_DOWN,mykeydown)
} else {
addEventListener(Event.ADDED_TO_STAGE, aaa);
}
function aaa(event:Event):void {
removeEventListener(Event.ADDED_TO_STAGE, aaa);
stage.addEventListener(KeyboardEvent.KEY_DOWN,mykeydown)
}
function mykeydown(evt:KeyboardEvent):void
{
......
}
/////////////////////////////
很多时候,可视类初始化的时候,要用到stage属性,则必须使用Event.ADDED_TO_STAGE事件,有的时候,连文档类初始化时,也需要用到Event.ADDED_TO_STAGE,原因是这个swf将被其它的文件加载,如果直接在初始化函数内使用stage属性,单独发布是没问题的,但联调时就会发生问题。
但是,文档类初始化函数内的Event.ADDED_TO_STAGE,当这个swf被其他文件加载时,很有可能被触发两次,如果你将所有真正的初始化代码都写在Event.ADDED_TO_STAGE事件相应函数内,所有的可视化元素,将会被new出来两份,所有的侦听,将会有两份...
这个现象很隐蔽,往往发生了也不报错,从表面上也看不出问题,但一旦发生,轻则降低机器性能,重则会发生很多灵异事件,例如明明把某个元素visible设成false了,但屏幕上还是能看到它,原因就是new出来东西,都将有两份。
Event.ADDED_TO_STAGE被广播两次的原因,可能是文档类的特殊性造成的,它自己初始化的时候被触发一次,被加载并显示的时候再触发一次。
- Event.ADDED_TO_STAGE--转
- Event.ADDED_TO_STAGE的本质
- Event.ADDED_TO_STAGE的问题
- ADDED_TO_STAGE REMOVED_FROM_STAGE Event.ADDED Event.REMOVED 区别
- Event.ADDED和Event.ADDED_TO_STAGE的区别
- 【转】event.cancelBubble与event.stopPropagation()
- Event
- Event
- Event
- Event
- Event
- event
- event
- event
- Event
- event
- Event
- Event
- VB.net 发送邮件 Email
- 60平台应用状态面板常用样式
- 常用log4j配置
- WCF RIA 服务 (十)- Domain Services 3
- NO.18 Web应用报表系统优化策略(含润乾RunQian Report常用优化点)
- Event.ADDED_TO_STAGE--转
- 逻辑移位 算术移位
- C#中ArrayList 与 string、string[] 的转换
- 认证技术
- 关于loongson上的ltp(real test tree)
- 4.8 UART例程解析
- Flex101: 创建一个业绩比较图
- 朋友交往须有“度”
- .net窗体事件顺序