Actionscript 3 在循环中播放淡入淡出

Actionscript 3 在循环中播放淡入淡出,actionscript-3,flash,Actionscript 3,Flash,我是as3的新手。我在现场拍了一部电影。我想在循环中播放它们,当我的mc淡出时,它必须开始淡入,反之亦然。我想把他们打循环。淡出功能首先工作正常。但如何在淡入淡出后加载淡入 my_mc.addEventListener(Event.ENTER_FRAME, fadeout); function fadeout(e:Event){ if(my_mc.alpha >=1){ this.alpha -=0.1; if(my_mc.alpha <=0

我是as3的新手。我在现场拍了一部电影。我想在循环中播放它们,当我的mc淡出时,它必须开始淡入,反之亦然。我想把他们打循环。淡出功能首先工作正常。但如何在淡入淡出后加载淡入

my_mc.addEventListener(Event.ENTER_FRAME, fadeout);

function fadeout(e:Event){
    if(my_mc.alpha >=1){
        this.alpha -=0.1;
        if(my_mc.alpha <=0){
            this.removeEventListener(Event.ENTER_FRAME, fadeout);
        }
    }
}

my_mc.addEventListener(Event.ENTER_FRAME, fadein);

function fadein(e:Event){
    if(my_mc.alpha <=0){
        this.alpha +=0.1;
        if(my_mc.alpha >=1){
            this.removeEventListener(Event.ENTER_FRAME, fadein);
        }
    }
}
my_mc.addEventListener(Event.ENTER_FRAME,fadeout);
功能衰减(e:事件){
如果(my_mc.alpha>=1){
这个α=0.1;

如果(my_mc.alpha在<代码>淡出
,一旦检测到alpha=1){ 这个α=0.1;
如果(my_mc.alpha在<代码>淡出,一旦检测到alpha=1){ 这个α=0.1; if(my_mc.alpha
my_mc.addEventListener(Event.ENTER_FRAME,淡出);
功能衰减(e:事件){
如果(my_mc.alpha=1){
my_mc.removeEventListener(Event.ENTER_FRAME,fadein);
my_mc.addEventListener(Event.ENTER_FRAME,淡出);
}否则{
my_mc.alpha+=0.1;
}
}
我的mc.addEventListener(事件输入帧,淡出);
功能衰减(e:事件){
如果(my_mc.alpha=1){
my_mc.removeEventListener(Event.ENTER_FRAME,fadein);
my_mc.addEventListener(Event.ENTER_FRAME,淡出);
}否则{
my_mc.alpha+=0.1;
}
}

我已经设法改进了原来的@sch answer=) 我已经完成了一个函数,您可以将任何给定的movieclip作为参数传递,并将Fadein/fadeout循环应用于它

所有这些电影都会同样淡入淡出。 感谢@sch answer和!
我希望大家都觉得这种不同的方法很有用;)=)

我已经设法改进了原来的@sch答案=) 我已经完成了一个函数,您可以将任何给定的movieclip作为参数传递,并将Fadein/fadeout循环应用于它

所有这些电影都会同样淡入淡出。 感谢@sch answer和!
我希望你们都觉得这个不同的方法很有用;)=)

@sch这很好,非常有用,谢谢=)但是,我不确定如何进一步改进这个方法…你如何为任何MC编写调用此函数的方法?我的意思是,可能fadeout/in函数可以接收MC参数。但我不确定如何更改addEventListener sec我知道怎么做了,我已经回答了我自己的问题,呵呵。我已经把它作为一个新的答案发布了;@sch这很好,非常有用,谢谢=)但是,我不知道如何进一步改进这个…你会如何为任何MC编写调用这个函数的程序?我的意思是,也许淡出/淡入函数可以n收到一个mc参数。但我不确定如何更改addEventListener部分。他能给我一些建议吗?谢谢=)现在我知道怎么做了,我已经回答了我自己的问题,呵呵。我已经把它作为新的答案发布了;)
function fadeout(e:Event){
    if(my_mc.alpha >=1){
        this.alpha -=0.1;
        if(my_mc.alpha <=0){
            this.removeEventListener(Event.ENTER_FRAME, fadeout);
            this.addEventListener(Event.ENTER_FRAME, fadein);  // add this
        }
    }
}
my_mc.addEventListener(Event.ENTER_FRAME, fadeout);

function fadeout(e:Event){
    if(my_mc.alpha <=0){
        my_mc.removeEventListener(Event.ENTER_FRAME, fadeout);
        my_mc.addEventListener(Event.ENTER_FRAME, fadein);
    } else {
        my_mc.alpha -=0.1;
    }
}

function fadein(e:Event){
    if(my_mc.alpha >= 1){
        my_mc.removeEventListener(Event.ENTER_FRAME, fadein);
        my_mc.addEventListener(Event.ENTER_FRAME, fadeout);
    } else {
        my_mc.alpha +=0.1;
    }
}
// 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);
                }
            }
        }
    }           
}
fncFadeinFadeout(mc0);
fncFadeinFadeout(mc0);
fncFadeinFadeout(mc0);
...