在屏幕上显示对象后是否触发了Flex事件

时间:2011-12-01 15:37:59

标签: flex image events flex3

我有一个动态加载的图像,并被添加到我的大型应用程序中。

加载图像后,我想要抓取显示器的位图以进行打印。

问题是,在图像在屏幕上呈现后,我无法找到任何可以保证触发的事件

FlexEvent.CREATION_COMPLETE听起来最接近纸张,但似乎无法解决问题。

为了测试,我在事件触发的处理程序末尾添加一个断点,并在触发断点时查看图像是否在屏幕上。

我被迫使用flex 3.3。

3 个答案:

答案 0 :(得分:2)

图像是一种特殊情况 - 在加载和渲染图像数据之前,组件可以在显示列表中完整和可见。

对于s:Image,请查看Image.ready事件。

如果您使用的是mx:Image,请查看Image.complete。 (还有s:Image.complete - 请参阅flexdoc评论,了解它与ready的区别。)

答案 1 :(得分:0)

您是否尝试过FlexEvent.SHOW活动?

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/core/UIComponent.html#event:show

编辑:

如果你能找到一个在加载数据后被触发的事件(Event.COMPLETE或FlexEvent.CREATION_COMPLETE或其他东西),你可以放弃做一个callLater()并假设图像将是由下一帧渲染。一个黑客,但它可能值得一试。

答案 2 :(得分:0)

MX Image有一个完整的事件,我认为你正在寻找。仅供参考,每个班级在其语言参考页面中都有一个名为“活动”的部分。通过这些并尝试看起来可能的那些通常是有益的。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/Image.html#eventSummary