2011-01-26 41 views
2

我们目前使用mx:HTML组件来渲染复杂的HTML页面(这非常令人不安.. :))。出于某些原因,我们需要在呈现HTML时捕获显示页面的图像。所以我用下面的代码来做到这一点:空气HTML组件和HTML_RENDER事件

在初始化:

frameHtml.addEventListener(Event.HTML_RENDER, cacheFrameHTML); 

和cacheFrameHTML功能:

private function cacheFrameHTML(event:*):void { 
... 
cacheImage.source = new Bitmap(ImageSnapshot.captureBitmapData(frameHtml)); 
... 
} 

对于一些未知的原因,结果图像是完全地某个空白。 HTML_RENDER事件和HTML组件的有效呈现之间似乎存在短暂的延迟。我试图用计时器来延迟图像捕捉,但似乎并不干净。

所以我的问题是: - 是否有人知道一个技巧,只有在HTML框架有效显示时才触发捕获? - 至少,反正是有测试,如果结果的BitmapData为空或只有白色像素:乙

非常感谢

安东尼

回答

1

您是否尝试过使用使用callLater方法?

的使用callLater()方法队列在下次刷新屏幕要执行的操作,而不是当前的更新

private function cacheFrameHTML(event:*):void { 
... 
callLater(saveImage); 
... 
} 

private function saveImage():void 
{ 
cacheImage.source = new Bitmap(ImageSnapshot.captureBitmapData(frameHtml)); 
} 
+0

是的,但我仍然得到一个空白图像。 – 2011-02-01 14:23:02