PDA

Просмотр полной версии : Как остановить мувиклип после проигрывания


neFX
21.03.2008, 21:12
Доброго времени суток, товарищи!
У меня такой вопрос:

Я подгружаю в свою флэшку, мовиклипы.. длину которых я заведомо не знаю. Они проиграв 1 раз, начинают проигрываться заново.

Как сделать так чтобы проиграв 1 раз клип остановился, притом что я не имею доступа к самим клипам??

Fann
21.03.2008, 23:45
я думаю вот так можна:

var aMC:Array=new Array();
//добавляете в массив мувиклипы
this.onEnterFrame = mx.utils.Delegate.create(this,animation);
function animation(){
if(aMC.length>0){
for(var i:Number=aMC.length-1;i>=0;i--){
if(aMC[i]._currentframe==1 && !aMC[i].firstPlay){
aMC[i].gotoAndStop(aMC[i].frame);
aMC.splice(i,1);
continue;
}
aMC[i].firstPlay=false;
aMC[i].frame++;
}
}else{
delete this.onEnterFrame;
}
}

aMC - это массив ваших мувиклипов, после загрузки выставите флажок aMC[i].firstPlay=true, a aMC[i].frame=1;

neFX
22.03.2008, 01:15
а если не делать массива, а предположить что у нас есть 1 подгружаемый клип, и мы не знаем его днинны...

вообще что то оч сложно

я думал есть какие нить решения из разряда End movieClip или что то вроде этого)..

Fann
22.03.2008, 01:22
ну не делай масива, убери фор и убивай ентерфрейм как в иф зайдешь

AL.exe
23.03.2008, 02:05
У мувиклипа же есть свойство _totalframes - можно даже не создавать флаг firstplay

neFX
23.03.2008, 17:47
поставил _totalframes на свой мув в который у меня грузится клип, после того как он загрузился, он выдаёт мне число кадров..

т.е. я уже знаю номер последнего кадра..
только вот никак не могу понять, каким оброзом мне туда стоп прописать...

по поводу ифа, и массивов вообще что то я мысль этого кода не уловил...

AL.exe
26.03.2008, 23:01
my_movieclip.onEnterFrame=function(){
//если текущий кадр равен по значению общему количеству кадров:
if(this._currentframe==this._totalframes){
this.stop();
delete this.onEnterFrame;
}
}

Типа такого что-то.

Где my_movieclip - имя вашего мувиклипа.