打印

[AS3] 求助 as2 到 as3 ENTER_FRAME怎么用?

我最近刚学as3,想用按钮控制一个小球的时间轴动画。

先做了个小球从一边到另一边的动画,然后做了 分别叫next_btn 和 prev_btn的按钮,点击next_btn则小球向后播放,点击prev_btn则小球向前播放,用的是ENTER_FRAME.但我做出来的效果发现按钮点一下,小球动画暂停,再点一下才能控制小球前后运动,我对as3事件不很熟悉,所以这个问题解决不了,例子在附件,在此请教大家。谢谢!!

play_btn.addEventListener(MouseEvent.CLICK,playMc);
function playMc(event:MouseEvent) {
       addEventListener(Event.ENTER_FRAME,frameHandler);
       function frameHandler(event:Event):void {
              ball.nextFrame();
       }
}
stop_btn.addEventListener(MouseEvent.CLICK,stopMc);
function stopMc(event:MouseEvent) {
       addEventListener(Event.ENTER_FRAME,frameHandler);
       function frameHandler(event:Event):void {
              ball.prevFrame();
       }
}

[ 本帖最后由 TheDarkSide 于 2008-6-1 17:58 编辑 ]
附件: 您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!
function prev_frameHandler(event:Event):void {
       ball.prevFrame();
}
function next_frameHandler(event:Event):void {
       ball.nextFrame();
}
function playMc(event:MouseEvent) {
       removeEventListener(Event.ENTER_FRAME,prev_frameHandler);
       addEventListener(Event.ENTER_FRAME,next_frameHandler);
}
function stopMc(event:MouseEvent) {
       removeEventListener(Event.ENTER_FRAME,next_frameHandler);
       addEventListener(Event.ENTER_FRAME,prev_frameHandler);
}
ball.stop();
next_btn.addEventListener(MouseEvent.CLICK,playMc);
prev_btn.addEventListener(MouseEvent.CLICK,stopMc);

AS3.0可以将两个事件绑在一个监听上。
另外写的时候最好像我这样,改变一下思路,不要搞什么子函数。那样其实条理并不如现在这样清晰。子函数到底到底是啥情况我还真不清楚。
yiyiflashstudio.com
呵呵 谢谢2楼!真的很感谢。
我写在了函数里面,把作用域搞错了。(不知as3中还有没有这么个概念)