Air HTML Component和HTML_RENDER事件

时间:2011-01-26 10:50:06

标签: flex4 air mxml

我们目前正在使用mx:HTML组件来呈现复杂的HTML页面(这非常令人不安...... :))。出于某些原因,在呈现HTML时,我们需要捕获所显示页面的图像。所以我使用以下代码来执行此操作:

初始化:

frameHtml.addEventListener(Event.HTML_RENDER, cacheFrameHTML);

和cacheFrameHTML函数:

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

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

所以我的问题是: - 是否有人知道只有在有效显示HTML框架时才触发捕获的技巧? - 至少,无论如何都要测试结果BitmapData是空白还是只有白色像素?:b

非常感谢

安托

1 个答案:

答案 0 :(得分:1)

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

  

callLater()方法将为下一次屏幕刷新而不是在当前更新中对要执行的操作进行排队

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

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