0
通常我会听ENTER_FRAME事件并在每次帧渲染时执行代码。但对于我的应用程序来说,这太慢了。 2个ENTER_FRAME事件之间的时间间隔为40毫秒。如果我更改帧率,无所谓。stage stage render/redraw
那么是否有可能强制闪光重绘/渲染帧而不听事件?我尝试了stage.invalidate()方法并更改帧率,但它并没有改善任何东西(stage.invalidate()实际上没有做任何事情)
我做了一个小测试,看看ENTER_FRAME和EXIT_FRAME事件:
private var beginTime:Number;
private var endTime:Number;
public function init():void {
addEventListener(Event.ENTER_FRAME, enterFrame);
addEventListener(Event.EXIT_FRAME, exitFrame);
}
private function enterFrame(e:Event):void {
beginTime = new Date().getTime();
if(endTime) {
trace(beginTime - endTime);
}
}
private function exitFrame(e:Event):void {
endTime = new Date().getTime();
}
如果我右边的ENTER_FRAME事件是帧的渲染之前触发和EXIT_FRAME事件被渲染后被解雇。所以在EXIT_FRAME事件之后,渲染完成,应用程序将发送一个ENTER_FRAME事件。 这两个事件之间的平均时间为52毫秒。我希望缩短那个时候
Bytheway我已经把我的帧率180这个测试
你能否更新你的问题更具体?也许显示一些代码? –
无论这是否可能,这可能实际上是一个坏主意。 如果ENTER_FRAME事件之间的时间间隔为40毫秒,即使您更改了帧速率,那也可能是因为渲染舞台需要至少40毫秒。 试图更频繁地渲染它可能不会让你的应用更快 –
蒂莫西的建议非常好。尝试配置您的应用程序以查找内存或CPU中的潜在瓶颈。你也可以试试[Scout](http://gotoandlearn.com/play.php?id=175) –