zoukankan      html  css  js  c++  java
  • [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语句编译时做了什么事,所以具体底层原因不清楚。当然,导出后执行结果是正常的。
  • 相关阅读:
    10. Regular Expression Matching
    9. Palindrome Number
    8. String to Integer (atoi)
    7. Reverse Integer
    6. ZigZag Conversion
    《设计模式
    《设计模式
    《设计模式
    《linux 计划任务》- cron
    《设计模式
  • 原文地址:https://www.cnblogs.com/yao/p/731396.html
Copyright © 2011-2022 走看看