updateAfterEvent的用处

来源:互联网 发布:网络销售提成一般多少 编辑:程序博客网 时间:2024/04/29 07:35

一般情况下没有API调用可以强制flash player进行渲染,除非,在mouse/keyboard/timer event里面调用event.updateAfterEvent(), 会强制flash player在event处理结束后做一次render.

FLASH:
(狂点击FLASH会触发updateAfterEvent的调用,强制刷新flash舞台)

测试代码:

package { import flash.display.*;import flash.events.*;import flash.utils.*public class marshal3 extends MovieClip {        var a:Timer = new Timer(20,0);        public function marshal3() {            this.addEventListener(Event.ENTER_FRAME, enter_frame)stage.addEventListener(MouseEvent.CLICK, onClick);            a.addEventListener(TimerEvent.TIMER, onTick);            a.start();        }         private function enter_frame(e:*){            trace("enter_frame," + getTimer());        }         public function onClick(e:*) {            trace("onClick," + getTimer());            e.updateAfterEvent();        }        public function onTick(e:*) {            trace("onTick" + getTimer());            mc1.x += 2;            if (mc1.x > 300) {            mc1.x = 2;        }    }}

fps=1
输出:

enter_frame,2008
onTick2008
onTick2109
onTick2209
onTick2309
onTick2409
onTick2508
onTick2609
onTick2709
onTick2809
onTick2909
enter_frame,3008
onTick3008
onTick3109
onTick3209
onClick,3210
onTick3309
onClick,3385
onTick3409
onTick3508
onClick,3570
onTick3609
onTick3709
onClick,3729
onTick3809
onClick,3898
onTick3909
enter_frame,4008
onTick4008
onClick,4066

结论:

event.updateAfterEvent(), 会强制flash player在event处理结束后做一次render.
但是,并不会提早结束当前帧。FPS继续保持。


原创粉丝点击