flash 按钮控制MC播放x次的问题。

我制作了一个影片剪辑myMC(比如一个球做一次圆周运动,共25帧动画),和两个按钮,一个按钮b1控制myMC播放2次,一个按钮b2控制myMC播放5次。mc电影剪辑的第一... 我制作了一个影片剪辑myMC(比如一个球做一次圆周运动,共25帧动画),和两个按钮,一个按钮b1控制myMC播放2次,一个按钮b2控制myMC播放5次。mc电影剪辑的第一帧使用了动作stop(),最后一帧设置了stop();
我想达到这样一效果:主场景,myMC开始是不播放的,单击按钮b1,myMC播放2次(小球做两次圆周运动);单击按钮b2,myMC播放5次(小球做五次圆周运动)。我在主场景的按钮b1上加了如下动作:
on(press)
{
do
{
mymc.play();
x=mymc.currentframe();
if(x==25){i++;}
}while(i<2)
}
我想的是循环播放,当mymc播放到第25帧的时候,检测到帧号,I自动加1,再次执行mymc.play();
但是我在测试的时候,发现单击按钮b1,MYMC智能播放一次。在线等待,请问高手们原因?难道是没循环起?
按钮b2只需要修改I的值就可以控制mymc播放的次数了吧?!
展开
 我来答
瘾晴败2822
2013-08-22 · TA获得超过217个赞
知道小有建树答主
回答量:553
采纳率:66%
帮助的人:628万
展开全部
经过测试这种方法可行,但不是很好,希望有更好的方法来实现。代码如下
k = 2;//转动二次
j = 5;//转动5次
ball_mc.stop();//ball_mc为转动小球影片剪辑的实例名
btn2_btn.onRelease = function() {//btn2_btn为转动二次按钮的实例名
i = 0;
ball_mc.play();
ball_mc.onEnterFrame = function() {
x = ball_mc._currentframe;
i++;
if (i>=25*k) {//25是指那个影片剪辑长度为25帧
_root.ball_mc.stop();
delete onEnterFrame;
}
};
};
btn5_btn.onRelease = function() {//btn5_btn为转动五次按钮的实例名
i = 0;
ball_mc.play();
ball_mc.onEnterFrame = function() {
x = ball_mc._currentframe;
i++;
if (i>=25*j) {
_root.ball_mc.stop();
delete onEnterFrame;
}
};
};
我这个代码是写在帧上的,写在按钮上的有点不同。注意影片剪辑中不要有stop()命令。讲一下我这个代码的不足:delete onEnterFrame;这个命令没用,也就是只要flash在运行,i的值会一直在加。
百度网友fe56b77

2013-08-22 · TA获得超过2276个赞
知道大有可为答主
回答量:1961
采纳率:16%
帮助的人:1093万
展开全部
i的初始值是多少?,是0的话应该循环2次,是1的话肯定就一次。如果5次的改下while的条件就行了。但是你这个代码有问题,循环是很快的,一般情况下循环结束后才展示帧内容,所以建议你不要使用循环,否则可能导致不响应。可以使用setInterval来控制次数比较好,还可以使用onEnterFrame。
追问
onEnterFrame 这个不懂啊。
新手!
追答
在动画第一帧加:
vai i:int=0;
mymc.stop();
然后把mymc的第一帧的stop()去掉,之后在按钮上加如下代码。
on (release) {
mymc.onEnterFrame = function()
{
mymc.play();
var xx:Number = _root.mymc._currentframe;
if (xx == 25)
{
i++;
mymc.gotoAndPlay(1);
}

if (i == 2)//循环6次,把这里改成i=6就行了。
{
delete mymc.onEnterFrame;
i=0;
}
};
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式