2013-08-11 5 views
1

это код ошибки 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(); 
    } 
} 
}  

THx !!!

+0

Последнее, если утверждение немного странно .. это опечатка? – putvande

+0

'Math.floor ((totalScore-1)/10) + 2' – Dave

+0

, но нет ли способа уменьшить первичный ifs до одной функции? –

ответ

2

Из рисунка вы в курсе, что я пишу это так:

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

Однако, как @putvande отметил, окончательное if утверждение не соответствует шаблону (и похоже, что это имеет typo), поэтому, если он не предназначен для его выполнения, вам придется обрабатывать это отдельно.

+0

жаль, что я попробую этот, и мы увидим thx много человек –

+0

, но разве нет способа уменьшить первичный ifs до одной функции? –

+0

этот пример уменьшает второй, если из основного –