flash as3.0问题,本人as初学者,请教一下老师们帮我看看代码哪儿不对,

就是一个元件动画60帧,我想让它放入场景以后能够执行一个点击动作,让他从1放到60;;然后在点击一下让他从60逆向播放到1;我的代码只能执行一次,可以正常播放到60,也能... 就是一个元件动画60帧,我想让它放入场景以后能够执行
一个点击动作,让他从1放到60;;然后在点击一下让他从60逆向播放到1;
我的代码只能执行一次,可以正常播放到60,也能倒回来,但是只有一次,在点击就没变化了!
是不是侦听已经失效了,还是怎么回事,大神能顺带帮我解释下原因吗?谢谢了
小弟分不多,有分了一定追加,谢谢大神!代码可以优化一下吗..我这个其实在模拟一个翻书动画!
var cs:Boolean = true;
fm.addEventListener(MouseEvent.CLICK,hf);
function hf(event:Event)
{
if ((fm.currentFrame<fm.totalFrames)&&(cs))
{
fm.play();
if (fm.currentFrame==fm.totalFrames - 1)
{
cs=false;
}
}else
{

addEventListener(Event.ENTER_FRAME,dao)
function dao(e):void
{fm.prevFrame();}
}
}
展开
 我来答
匿名用户

2016-12-19
展开全部
var cs:Boolean = true;
var isplay:Boolean=false;//如果正在播放则不允许点击
fm.addEventListener(MouseEvent.CLICK,hf);
function hf(event:MouseEvent)
{
if(isplay==true)
{
return;
}
if(cs==true)
{
isplay=true;
fm.removeEventListener(Event.ENTER_FRAME,PlayBackEvent);
fm.gotoAndPlay(2);
fm.addEventListener(Event.ENTER_FRAME,CheckEndEvent);//检测是否到最后一帧
}
else
{
isplay=true;
fm.addEventListener(Event.ENTER_FRAME,PlayBackEvent);
}
}
function CheckEndEvent(e:Event):void
{
if(fm.currentFrame==fm.totalFrames)
{
isplay=false;
cs=false;
fm.removeEventListener(Event.ENTER_FRAME,CheckEndEvent);
}
}
function PlayBackEvent(e:Event):void
{
if(fm.currentFrame!=1)
{
fm.prevFrame();
}
else
{
isplay=false;
cs=true;
fm.removeEventListener(Event.ENTER_FRAME,PlayBackEvent);
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式