首页 > 解决方案 > 如何优化多个 if-else 语句 AS3?

问题描述

所以我的函数characterBooleanFunction包含 30 多个 if-else 语句。当我运行 Scout 来检查性能时,它指向这个函数,该函数也由 ENTER_FRAME 事件运行。Scout 向我展示了该gotoAndStop声明的成本非常高。我不确定每次运行游戏时如何解决这个问题,它只是可怕地滞后。用户滚动屏幕上的字符,当他们点击一个标记时,它会激活该characterBooleanFunction功能。有任何想法吗?这是代码:

private function characterBooleanFunction():void 
    {
        if (scrollCharacters.mcRandom.hit.hitTestObject(storeScreen.mcMarker) )
       {
           scrollCharacters.mcRandom.gotoAndStop(2);

           //booleans
           bRandom = true;

       }else
       {
           scrollCharacters.mcRandom.gotoAndStop(1);
           bRandom = false;
       }

       if (scrollCharacters.mcChinese.hit.hitTestObject(storeScreen.mcMarker) )
       {
           scrollCharacters.mcChinese.gotoAndStop(2);
           trace("HIT CHINESE");
            //booleans
           bChinese = true;

       }else
       {
           scrollCharacters.mcChinese.gotoAndStop(1);
           bChinese = false;
       }

       if (scrollCharacters.mcPizza.hit.hitTestObject(storeScreen.mcMarker) )
       {
           scrollCharacters.mcPizza.gotoAndStop(2);
           trace("HIT PIZZA");
            //booleans

           bPizza = true;

       }else
       {
           scrollCharacters.mcPizza.gotoAndStop(1);
           bPizza = false;
       }

       if (scrollCharacters.mcBurger.hit.hitTestObject(storeScreen.mcMarker) )
       {
           scrollCharacters.mcBurger.gotoAndStop(2);

            //booleans
           bBurger = true;

       }else
       {
           scrollCharacters.mcBurger.gotoAndStop(1);
           bBurger = false;
       }

……等等等等。

提前致谢!

标签: actionscript-3flashdevelopflash-cc

解决方案


推荐阅读