关于onEnterFrame和onClipEvent(enterFrame)
2010-12-15 23:07
141 查看
在flashAS手册里,关于EnterFrame的解释是:进入帧。
_mc.onEnterFrame{}就是表示当影片播放到当前帧,触发一个事件。
刚开始学AS的时候,我顺其自然地认为,如果当前帧用了stop语句,那么影片就会停止播放,就不会再触发onEnterFrame事件了。但是有意思的是,实际上,EnterFrame的最多的用处是和stop配合来使用的。
在别的编程语言里,等待某个变量改变,一般用循环语句来等待。这些循环语句一般是if...else、do...loop、for ... next等等。这些在AS里也有,但是你自己试试看,一旦使用这些循环,一旦循环次数较多,很容易使影片停顿,甚至进入死循环。
在AS里,一般不用循环语句来监测变量。而是用EnterFrame和stop配合来实现的。
AS的帮助文章没有任何声明:当影片stop在当前帧的时候,并没有真正停止播放,而是反复播放当前帧。而且,是按照影片设定的帧频率反复播放,反复触发EnterFrame事件。
我为此疑惑很久。
但是,AS很多例子都利用这个模式来进行循环:
stop();
_mc.onEnterFrame=function{
程序处理语句
};
了解这个道理,我们可以通过设定影片播放的帧频率来控制循环速度。比如说需要很慢的时候,甚至每秒钟循环一次也可以的。
下面说说onEnterFrame和onClipEvent(enterFrame)在使用上的不同。因为很多初学的都会有些疑惑的。
关于“执行的先后循序”是我自己的一个试验得出的结论。
我在一帧里,在帧的脚本里有:
_mc.onEenterFrame=function(){
trace(“onEenterFrame”)
}
然后在_mc的脚本里再写:
onClipEvent(enterFrame) {
trace(“onClipEvent(enterFrame)”)
}
当时我的变态的心理是看看onEnterFrame和onClipEvent(enterFrame),到底哪个更厉害,结果出什么?
结果是:
onClipEvent(enterFrame)
onEnterFrame
onClipEvent(enterFrame)
onEnterFrame
onClipEvent(enterFrame)
onEnterFrame
onClipEvent(enterFrame)
onEnterFrame
原文: 不知道转了几手了,只知道是转贴的。
_mc.onEnterFrame{}就是表示当影片播放到当前帧,触发一个事件。
刚开始学AS的时候,我顺其自然地认为,如果当前帧用了stop语句,那么影片就会停止播放,就不会再触发onEnterFrame事件了。但是有意思的是,实际上,EnterFrame的最多的用处是和stop配合来使用的。
在别的编程语言里,等待某个变量改变,一般用循环语句来等待。这些循环语句一般是if...else、do...loop、for ... next等等。这些在AS里也有,但是你自己试试看,一旦使用这些循环,一旦循环次数较多,很容易使影片停顿,甚至进入死循环。
在AS里,一般不用循环语句来监测变量。而是用EnterFrame和stop配合来实现的。
AS的帮助文章没有任何声明:当影片stop在当前帧的时候,并没有真正停止播放,而是反复播放当前帧。而且,是按照影片设定的帧频率反复播放,反复触发EnterFrame事件。
我为此疑惑很久。
但是,AS很多例子都利用这个模式来进行循环:
stop();
_mc.onEnterFrame=function{
程序处理语句
};
了解这个道理,我们可以通过设定影片播放的帧频率来控制循环速度。比如说需要很慢的时候,甚至每秒钟循环一次也可以的。
下面说说onEnterFrame和onClipEvent(enterFrame)在使用上的不同。因为很多初学的都会有些疑惑的。
onEnterFrame | onClipEvent(enterFrame) | |
使用的地方 | 写在 帧 的 脚本编辑框 里 | 写在 MovieClip(影片剪辑)的 脚本编辑框 里 |
格式 | _mc.onEenterFrame=function(){ } | OnClipEvent(enterFrame){ } |
类型 | 事件处理函数 | 事件 |
执行的先后循序 | 后 | 前 |
我在一帧里,在帧的脚本里有:
_mc.onEenterFrame=function(){
trace(“onEenterFrame”)
}
然后在_mc的脚本里再写:
onClipEvent(enterFrame) {
trace(“onClipEvent(enterFrame)”)
}
当时我的变态的心理是看看onEnterFrame和onClipEvent(enterFrame),到底哪个更厉害,结果出什么?
结果是:
onClipEvent(enterFrame)
onEnterFrame
onClipEvent(enterFrame)
onEnterFrame
onClipEvent(enterFrame)
onEnterFrame
onClipEvent(enterFrame)
onEnterFrame
原文: 不知道转了几手了,只知道是转贴的。
相关文章推荐
- 关于onEnterFrame和onClipEvent(enterFrame)
- 关于onEnterFrame和onClipEvent(enterFrame)
- 关于AS2和AS3的onEnterFrame和onClipEvent(enterFrame)的异同
- 试水 Egret :TouchEvent与EnterFrame相关
- 关于“Eclipse Bug: Unhandled event loop exception No more handles”
- 关于 wait_event_interruptible() 和 wake_up()的使用
- 关于兼容addEventListener方法与attachEvent的代码
- 一个关于dispatchevent通俗的理解
- 关于vCalendar / to-do / vEvent的区别
- 关于 Ext.EventObject中的getWheelDelta()方法无效的说明
- 关于TouchEvent中出现异常:MessageQueue-JNI问题
- 关于基于DDD+Event Sourcing设计的模型如何处理模型重构的问题的思考
- 关于ViewGroup中requestDisallowInterceptTouchEvent的用法
- qml中关于多个MouseArea之间的事件传递(propagateComposedEvent)
- 关于libevent+http服务端的一个样例
- Android中关于setLatestEventInfo()过时以及构建Notification的解决方法
- 关于C# 委托(delegate)与事件(event)的用法及事例
- 关于js的window.event的详解上
- 关于轮询,长轮询,Server Send Event,websocket的理解
- 关于Event与delegate的一些对比 .