2012-04-27 46 views
0

不使用BitmapData.draw();是否有可能停止渲染顯示列表,並在我認爲合適時執行渲染(不管是整個顯示列表還是單個DisplayObjects)。當DisplayObject將在AS3中呈現時,我可以操作嗎?

如果不是,實現此目標的最佳方法是什麼(包括使用BitmapData.draw()來呈現尚未添加到舞臺的DisplayObject的選項)?

+0

我想改變容器創建策略還可以幫助在一定程度上取決於..正是你婉實現 – Kamal 2012-04-27 06:35:46

+0

什麼這不就是時間表是爲了什麼?當你希望它們出現/呈現時,把對象放在時間點上。 – 2012-04-27 12:34:29

回答

0

您可以強制使用e.updateAfterEvent()鼠標/鍵盤事件之後渲染,但你不能阻止重繪屏幕顯示列表。你最好的選擇是:

  1. 把你所有的對象加入到一個holder雪碧,它離開舞臺顯示列表。
  2. 添加Bitmap和相關BitmapData舞臺。
  3. 每次你想'強制'一個渲染簡單draw()holderBitmapData,它會被完全相同的渲染器,通常運作光柵化。只要你對柵格化設置有更多的控制。

嘗試以下,或者見this更多信息:

function snapClip(clip:DisplayObject):BitmapData 
{ 
    var bounds:Rectangle = clip.getBounds(clip); 
    var bitmap:BitmapData = new BitmapData(int(bounds.width + 0.5), int(bounds.height + 0.5), true, 0); 
    bitmap.draw(clip, new Matrix(1,0,0,1,-bounds.x,-bounds.y)); 
    return bitmap; 
} 
相關問題