Flash中MC的循环显示问题(AS3)

如果我有多个MC,当然这些MC是在同一帧上。我想通过隐藏其他MC和显示其中一个MC这样的方法循环,形成一个动画效果。但是具体的判断做法好像比较繁杂。不知道各位有没有什么好... 如果我有多个MC,当然这些MC是在同一帧上。我想通过隐藏其他MC和显示其中一个MC这样的方法循环,形成一个动画效果。但是具体的判断做法好像比较繁杂。不知道各位有没有什么好招?

例:A/B/C三个元件,A显示的时候B和C不显示,B显示的时候A和C不显示,C显示的时候A和B不显示
展开
 我来答
bubuoopp
2010-10-09 · TA获得超过227个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:182万
展开全部
。。虽然不知道你为什么要用这样的方式来做,不过我可以提供一个方法:

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毫秒播放下一张,你可以修改这个数,达到控制速度播放。
百度网友6786744
2010-10-13 · 超过24用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:20万
展开全部
不好意思,借点楼上的代码,先建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();
}
}

目前游戏正在做。。放心使用。很科学的!!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式