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) –