2012-01-27 2 views
0

Я создал мувиклип, который имеет 120 кадров.stop movieclip, когда он достигает определенного кадра

Теперь я использовал несколько экземпляров этого мувиклипа на сцене.

Я хочу, чтобы каждый мувиклип остановился, когда достиг определенного кадра. (Номер кадра отличается для всех экземпляров)

я попытался следующий код

if (char_1.currentFrame == 36) {char_1.stop();} 

, но это не работает. я попытался проследить текущий кадр, и он всегда показывает 1.

trace(char_1.currentFrame); 

Любое решение пожалуйста?

ответ

0

попробовать что-то вроде этого:

// root 
var allMCs:Dictionary = new Dictionary(); 
allMCs[char_1] = 32; // frame on which to stop char_1 
allMCs[char_2] = 12; // frame on which to stop char_2 
allMCs[char_3] = 47; // frame on which to stop char_3 
// ... add more 

// add ENTER_FRAME listener 
this.addEventListener(Event.ENTER_FRAME, onEnterFrame); 

function onEnterFrame(evt:Event):void 
{ 
    // loop through all MCs and check their frame 
    for (var mc:MovieClip in allMCs) 
    { 
     trace(mc + " frame: " + mc.currentFrame); 
     if (mc.currentFrame == allMCs[mc]) 
     { 
      mc.stop(); 
     } 
    } 
} 

если следы все еще утверждают, что currentFrame является 1, убедитесь, что делать play(); в каждом MC вы используете.

Смежные вопросы