Flash 有没有办法使这个函数更小?

Flash 有没有办法使这个函数更小?,flash,function,if-statement,Flash,Function,If Statement,这就是问题所在的代码 a有一个星形动画,当分数为X时,动画将播放到特定帧 如何用较少的ifs使该函数更小? 因为你可以使用的功能是从500到0 addEventListener(Event.ENTER_FRAME, star); function star(e:Event):void{ if (totalScore<= 500 && totalScore>490) { if(GAME.stars.currentFrame == 51){ GAME.st

这就是问题所在的代码 a有一个星形动画,当分数为X时,动画将播放到特定帧 如何用较少的ifs使该函数更小? 因为你可以使用的功能是从500到0

addEventListener(Event.ENTER_FRAME, star);
function star(e:Event):void{
if (totalScore<= 500 && totalScore>490) {
    if(GAME.stars.currentFrame == 51){
    GAME.stars.stop();
    }
}
if (totalScore<= 490 && totalScore>480) {
    if(GAME.stars.currentFrame == 50){
    GAME.stars.stop();
    }
}
///...
    if (totalScore= 0 && totalScore>10) {
    if(GAME.stars.currentFrame == 1){
    GAME.stars.stop();
    }
}
}    
addEventListener(Event.ENTER_FRAME,星形);
功能之星(e:事件):无效{
如果(总分490){
如果(GAME.stars.currentFrame==51){
游戏。星星。停止();
}
}
如果(总计480){
如果(GAME.stars.currentFrame==50){
游戏。星星。停止();
}
}
///...
如果(totalScore=0&&totalScore>10){
如果(GAME.stars.currentFrame==1){
游戏。星星。停止();
}
}
}    

谢谢

根据您发布的模式,我会这样写:

addEventListener(Event.ENTER_FRAME, star);
function star(e:Event):void{
    if (GAME.stars.currentFrame == (Math.ceil(totalScore / 10) + 1)) {
        GAME.stars.stop();
    }
}

然而,正如@putvande所指出的,最后的
if
语句没有遵循该模式(并且看起来有输入错误),因此如果它不是要遵循该模式,则需要单独处理。

最后的if语句有点奇怪。。那是打字错误吗?
Math.floor((totalScore-1)/10)+2
但是没有办法将主ifs减少到一个函数吗?最后一个是一个输入错误BTW很抱歉,我将尝试这一个,我们将看到很多人,但是没有办法将主ifs减少到一个函数吗?这个例子从主ifs减少了第二个if。变量totalScore:int=0;它只接受此处声明的值按下按钮时我的值更改如何使它接受更改的值而不是开始时声明的值