不使用BitmapData.draw()
;是否可以停止渲染显示列表,并在我认为合适时执行渲染(无论是整个显示列表还是单个DisplayObjects)。
如果没有,实现此目的的最佳方法是什么(包括我使用BitmapData.draw()
渲染尚未添加到舞台的DisplayObjects的选项?)
答案 0 :(得分:0)
您可以使用e.updateAfterEvent()
在鼠标/键盘事件后强制渲染,但无法阻止显示列表重绘为屏幕。你最好的选择是:
holder
精灵中,该精灵位于舞台显示列表之外。Bitmap
和关联的BitmapData
。draw()
将holder
放到BitmapData
上,它就会被通常运行的完全相同的渲染器栅格化。只是你可以更好地控制栅格化设置。请尝试以下操作,或参阅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;
}