请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站原RIAMeeting

瑞研社区

 找回密码
 立即注册

QQ登录

如何使用TimelineWatcher来检测时间轴播放并简化你的代码

发表于 2011-7-13 17:51:33 |显示全部楼层

在广大Flash设计者和开发者中,你是否遇到过需要在Flash中,时间轴运行到某一个特定点的时候去做某些操作?
虽然大家常用的做法一般都是在需要做某种操作的时间的关键帧上添加具体操作代码或者派发操作事件。这样的做法带来的问题也显而易见:那就是使得代码的维护 变得越来越困难。当项目越来越大时,你不得不在各个时间轴上寻找你做了标记和操作的那个关键帧,或者修改你的原有代码。

TimelineWatcher类的发明是在将时间轴和动作分离的原则下,为了解决在时间轴的特定帧上执行动作的问题,通过在fla文件中制定文档类,将这个TimelineWatcher引入文档类,这样就可以对特定标签的帧和结束帧进行事件监听了。

使用TimelineWatcher你可以监听时间轴的运行情况,并通过事件来触发相应的操作,实现代码的集中管理。

示例:

import com.refunk.events.TimelineEvent; import com.refunk.timeline.TimelineWatcher; var timelineWatcher:TimelineWatcher = new TimelineWatcher(myMC); timelineWatcher.addEventListener(TimelineEvent.LABEL_REACHED, handleTimelineEvent); function handleTimelineEvent(e:TimelineEvent):void { switch (e.type) { case TimelineEvent.LABEL_REACHED : if (e.currentLabel==“framepoint1″) { trace(e.currentLabel); myMC.gotoAndStop(myMC.currentFrame);//注意这里是为了获取这一帧的元件的引用,必须执行这个操作 myMC.innermc.rotationZ = 20; timelineWatcher.removeEventListener(TimelineEvent.LABEL_REACHED, handleTimelineEvent); } break; } }

实践中发现,如果你播放到某一帧后要获取这一帧的某个元件(不在第一帧出现),直接就获取会告诉你是Null,但你可以gotoAndStop一把,就可以了。

使用道具 举报

本文评论

萧翎 俱乐部认证  发表于 2011-8-18 22:13:10 |显示全部楼层
这个好强大
有时候第三方类的作用到不小呢

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|关于社区|九州瑞研|瑞研社区   

GMT+8, 2012-5-19 00:35 , Processed in 0.032135 second(s), 23 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部