Flash中MC的循环显示问题(AS3)
如果我有多个MC,当然这些MC是在同一帧上。我想通过隐藏其他MC和显示其中一个MC这样的方法循环,形成一个动画效果。但是具体的判断做法好像比较繁杂。不知道各位有没有什么好...
如果我有多个MC,当然这些MC是在同一帧上。我想通过隐藏其他MC和显示其中一个MC这样的方法循环,形成一个动画效果。但是具体的判断做法好像比较繁杂。不知道各位有没有什么好招?
例:A/B/C三个元件,A显示的时候B和C不显示,B显示的时候A和C不显示,C显示的时候A和B不显示 展开
例:A/B/C三个元件,A显示的时候B和C不显示,B显示的时候A和C不显示,C显示的时候A和B不显示 展开
2个回答
展开全部
。。虽然不知道你为什么要用这样的方式来做,不过我可以提供一个方法:
var arr:Array=[a,b,c];//a b c 是你的MC实例名,很多的话就往里面加
var cur:int=0;
var max:int=arr.length;
function playMc() {
//全部隐藏
for each (var i in arr) {
i.visible=false;
}
if (cur==max) {
trace("播发完一遍");
cur = 0;
} else {
//显示要显示的
arr[cur].visible=true;
cur++;
}
}
var interval=setInterval(playMc,100);//100是100毫秒播放下一张,你可以修改这个数,达到控制速度播放。
var arr:Array=[a,b,c];//a b c 是你的MC实例名,很多的话就往里面加
var cur:int=0;
var max:int=arr.length;
function playMc() {
//全部隐藏
for each (var i in arr) {
i.visible=false;
}
if (cur==max) {
trace("播发完一遍");
cur = 0;
} else {
//显示要显示的
arr[cur].visible=true;
cur++;
}
}
var interval=setInterval(playMc,100);//100是100毫秒播放下一张,你可以修改这个数,达到控制速度播放。
展开全部
不好意思,借点楼上的代码,先建3个mc,a b c(经测试)
var arr:Array=[a,b,c];//a b c 是你的MC实例名,很多的话就往里面加
var cur:int=0;
var max:int=arr.length;
playMc();
function playMc() {
//全部隐藏
for each (var i in arr) {
i.visible=false;
i.stop(); //让后台的影片停止播放
}
if (cur==max) {
trace("播发完一遍");
cur = 0; //循环播放
playMc();
} else {
//显示要显示的,并播放
arr[cur].visible=true;
arr[cur].addEventListener(Event.ENTER_FRAME,checkEnd);
arr[cur].gotoAndPlay(1);
cur++;
}
}
function checkEnd(e:Event):void{
var mc:MovieClip=MovieClip(e.target);
if(mc.currentFrame==mc.totalFrames){
//播放完成
mc.removeEventListener(Event.ENTER_FRAME,checkEnd);
//播放下一个
playMc();
}
}
目前游戏正在做。。放心使用。很科学的!!!!
var arr:Array=[a,b,c];//a b c 是你的MC实例名,很多的话就往里面加
var cur:int=0;
var max:int=arr.length;
playMc();
function playMc() {
//全部隐藏
for each (var i in arr) {
i.visible=false;
i.stop(); //让后台的影片停止播放
}
if (cur==max) {
trace("播发完一遍");
cur = 0; //循环播放
playMc();
} else {
//显示要显示的,并播放
arr[cur].visible=true;
arr[cur].addEventListener(Event.ENTER_FRAME,checkEnd);
arr[cur].gotoAndPlay(1);
cur++;
}
}
function checkEnd(e:Event):void{
var mc:MovieClip=MovieClip(e.target);
if(mc.currentFrame==mc.totalFrames){
//播放完成
mc.removeEventListener(Event.ENTER_FRAME,checkEnd);
//播放下一个
playMc();
}
}
目前游戏正在做。。放心使用。很科学的!!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询