0

不使用BitmapData.draw(); 是否可以停止渲染显示列表,并在我认为合适时执行渲染(无论是整个显示列表还是单个显示对象)。

如果不是,那么实现此目的的最佳方法是什么(包括我BitmapData.draw()用来渲染尚未添加到舞台的 DisplayObjects 的选项)?

4

1 回答 1

0

您可以在鼠标/键盘事件后使用 强制渲染e.updateAfterEvent(),但不能阻止显示列表重绘到屏幕。你最好的选择是:

  1. 将所有对象添加到一个holderSprite 中,该 Sprite 不在舞台显示列表中。
  2. 添加一个Bitmap和关联BitmapData到舞台。
  3. 每次您想简单地“强制”渲染时draw(),它将被通常操作的完全相同的渲染器光栅化。只是您可以更好地控制光栅化设置。holderBitmapData

请尝试以下操作,或查看以获取更多信息:

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;
}
于 2012-04-28T08:40:06.723 回答