您的位置:首页 > 其它

updateAfterEvent的用处

2011-10-26 17:46 288 查看
一般情况下没有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继续保持。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: