[Flash开发笔记] Flash导出文件慢的一个可能原因

今天,在一个有多个场景的Flash中,加入了不多的一点代码,想实现一个游戏面板呼出的效果。
第一场景的一个按钮上,有如下一点代码:
on (rollOver) {
_root.propertyBar_mc.onEnterFrame = function() {
        
if (_root.propertyBar_mc._x<=560) {
            
delete _root.propertyBar_mc.onEnterFrame;
        } 
else {
            _root.propertyBar_mc._x 
-= 20;
        }
    };
}

即当面板被呼出后,便停止在某个位置,也就是加粗的那句,删除onEnterFrame事件
然后在第二个场景,我把同样的代码复制了过去,编译时(导出),却发现,巨慢,似乎停顿一般,简直无法忍受 :~(
回想了刚才也没有添加什么代码,就是代码是复制过去的。
然后,试着将第一场景和第二场景的propertyBar_mc命名为不同,结果好了。
奇怪啊。。。倒底是为什么呢?难道两个场景中不能有相同的mc吗?一点点排除,问题锁定在了上边加粗的那句代码:

            delete _root.propertyBar_mc.onEnterFrame;

发现,只要两个场景中,不要出现完全相同的“delete _root.propertyBar_mc.onEnterFrame;的语句就没事,否则,就巨慢。
就是说,两个场景的元件的名称可以相同,如果第一个场景是:

            delete _root.propertyBar_mc.onEnterFrame;

第二个场景中是:

            delete this.onEnterFrame;

这样语句只要不同就没事,与元件是否命名相同无关,真是很奇怪的问题,不知道Flash的编译器在deleteonEnterFrame语句编译时做了什么事,所以具体底层原因不清楚。当然,导出后执行结果是正常的。
posted on 2007-04-28 18:41 三千 阅读(650) 评论(0) 编辑 收藏
  • 美国项目管理学会PMP。
  • ★RIA 编程 Q群:18144801
  • MSN:
昵称:三千
园龄:6年8个月
粉丝:19
关注:4
<2007年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

搜索

 
 

常用链接

最新随笔

我的标签

随笔分类(162)

文章分类(70)

[Flash开发笔记] 系列

积分与排名

  • 积分 - 233972
  • 排名 - 345

最新评论

阅读排行榜

评论排行榜

推荐排行榜