Просмотр полной версии : Как остановить мувиклип после проигрывания
Доброго времени суток, товарищи!
У меня такой вопрос:
Я подгружаю в свою флэшку, мовиклипы.. длину которых я заведомо не знаю. Они проиграв 1 раз, начинают проигрываться заново.
Как сделать так чтобы проиграв 1 раз клип остановился, притом что я не имею доступа к самим клипам??
я думаю вот так можна:
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;
а если не делать массива, а предположить что у нас есть 1 подгружаемый клип, и мы не знаем его днинны...
вообще что то оч сложно
я думал есть какие нить решения из разряда End movieClip или что то вроде этого)..
ну не делай масива, убери фор и убивай ентерфрейм как в иф зайдешь
У мувиклипа же есть свойство _totalframes - можно даже не создавать флаг firstplay
поставил _totalframes на свой мув в который у меня грузится клип, после того как он загрузился, он выдаёт мне число кадров..
т.е. я уже знаю номер последнего кадра..
только вот никак не могу понять, каким оброзом мне туда стоп прописать...
по поводу ифа, и массивов вообще что то я мысль этого кода не уловил...
my_movieclip.onEnterFrame=function(){
//если текущий кадр равен по значению общему количеству кадров:
if(this._currentframe==this._totalframes){
this.stop();
delete this.onEnterFrame;
}
}
Типа такого что-то.
Где my_movieclip - имя вашего мувиклипа.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.