然而一旦renderer.renderScene()不執行,鼠標事件(InteractiveScene3DEvent)也偵聽不到了。看來PV3D的互動支持必須依賴於每幀重繪或者是重繪方法其中的一些步驟。
引用 ooph's blog - PV3D優化CPU佔用技巧
自己的方法是:
建立兩個function: "addRenderListener" "removeRenderListener"
當動畫開始執行時呼叫 addRenderListener 把舞台品質調低,並開啟渲染引擎。
當動畫結束後再呼叫 removeRenderListener 把舞台品質改回來,並關閉渲染引擎。
import flash.display.StageQuality;
private function addRenderListener(e:Event = null):void
{
stage.quality = StageQuality.LOW; //若品質不佳則改用MEDIUM
this.addEventListener(Event.ENTER_FRAME, onEventRender3D);
trace("add");
}
private function removeRenderListener(e:Event = null):void
{
stage.quality = StageQuality.HIGH;
this.removeEventListener(Event.ENTER_FRAME, onEventRender3D);
trace("remove");
}
但是這是未使用到InteractiveScene3DEvent滑鼠互動的狀況,
需要時再參考 ooph's blog - PV3D優化CPU佔用技巧研究吧..
沒有留言:
張貼留言