Мне удалось улучшить исходный ответ @sch =) Я сделал функцию, в которой вы можете передать любой данный мувиклип в качестве аргумента и к нему будет применен цикл Fadein / fadeout.Вот как (с комментариями):
// A boolean variable holds the flag for this to be applied
var boolFadeinFadeoutCicle:Boolean=true;
// This function can receive as a parameter a movieclip
function fncFadeinFadeout(mc:MovieClip){
if(boolFadeinFadeoutCicle){
//The fadeout listener it's added here, all relative to the mc received
MovieClip(mc).addEventListener(Event.ENTER_FRAME, Fadeout);
function Fadeout(evt:Event){
MovieClip(mc).alpha -=0.05;
//Once the mc.alpha reaches zero, the fadeout listener it's removed and the fadein one it's added
if (MovieClip(mc).alpha <= 0){
MovieClip(mc).removeEventListener(Event.ENTER_FRAME, Fadeout);
MovieClip(mc).addEventListener(Event.ENTER_FRAME, Fadein);
}
//Here the logic it's the same, but inverted.
function Fadein(evt:Event){
MovieClip(mc).alpha +=0.05;
if (MovieClip(mc).alpha >= 1){
MovieClip(mc).removeEventListener(Event.ENTER_FRAME, Fadein);
MovieClip(mc).addEventListener(Event.ENTER_FRAME, Fadeout);
}
}
}
}
}
Как видите, это та же логика, что и у ответа @sch, но с другой структурой, которая может принимать MovieClip в качестве параметра, подобного этому:
fncFadeinFadeout(mc0);
fncFadeinFadeout(mc0);
fncFadeinFadeout(mc0);
...
Все эти мувиклипы будут появляться и исчезать одинаково.Благодаря @sch answer и этому уроку !Я надеюсь, что вы все найдете этот другой подход полезным;) =)