我有一个图像被动态加载并被添加到我的大型应用程序中。在屏幕上显示对象后触发了一个Flex事件
加载图像后,我想为显示目的抓取显示器的位图。
问题是我找不到任何保证被触发的事件图像在屏幕上呈现。
FlexEvent.CREATION_COMPLETE听起来最接近纸张,但似乎没有办法。
为了测试,我在事件触发的处理程序的末尾添加了一个断点,并在断点触发时查看图像是否在屏幕上。
我被迫使用flex 3.3。
我有一个图像被动态加载并被添加到我的大型应用程序中。在屏幕上显示对象后触发了一个Flex事件
加载图像后,我想为显示目的抓取显示器的位图。
问题是我找不到任何保证被触发的事件图像在屏幕上呈现。
FlexEvent.CREATION_COMPLETE听起来最接近纸张,但似乎没有办法。
为了测试,我在事件触发的处理程序的末尾添加了一个断点,并在断点触发时查看图像是否在屏幕上。
我被迫使用flex 3.3。
您是否尝试过FlexEvent.SHOW
事件?
编辑:
如果你能找到的数据被加载(Event.COMPLETE或FlexEvent.CREATION_COMPLETE或别的东西),之后被触发的事件,你也许能逃脱做一个callLater()并假定图像将被下一帧渲染。一种黑客,但它可能是值得一试。
图像是一种特殊情况 - 在加载和渲染图像数据本身之前,组件可以在显示列表中完整且可见。
对于s:Image
,请查看Image.ready
事件。
如果您使用的是mx:Image
,请改用Image.complete
。 (还有一个s:Image.complete
--see它从ready
有什么不同的意见flexdoc)
快速侦察的文档显示,该事件不适用于我被强制使用的flex 3.3。我现在更新了这个问题。 –
MX图像上有一个完整的事件,我认为是你在找什么。仅供参考,每个课程在其语言参考页面中都有一个名为“活动”的部分。通过这些并尝试看起来很可能的事情通常很有启发性。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/Image.html#eventSummary
我已经尝试捕获该事件,并且它在图像加载完成时似乎被解雇(正如人们所期望的那样),*不*当图像必然到达屏幕时。 –
您应该能够在该点捕捉图像的像素,除非您尝试捕捉的不仅仅是图像。但是,如果在reg'lar complete中为updateComplete添加一个事件侦听器,则应该发现在那一刻完成了所有事情。 –
FlexEvent.SHOW在任何时候都不会被调用,我相信这只适用于当一个对象被显式地从不可见中变为可见时,而对于正常的图像加载,它会从未定义的直线变为可见。 –
我已经用我可能会尝试的其他东西更新了我的答案。 –
谢谢,但我已经尝试过(我也尝试过5次嵌套的callLater(),它工作了一小段时间)。 –