【发布时间】:2012-12-22 19:30:45
【问题描述】:
我已经将一个大 (4096x4096) 图像加载到内存中,但是当我尝试使用 addChild 时,它实际上会被绘制到屏幕上之前有很长的延迟。这是意料之中的。但是,是否有一个事件可以让我知道 DisplayObject(一个 .png 图像)实际被绘制到屏幕上的那一刻?
我正在尝试将图像加载到屏幕上,然后在它们实际绘制后执行一些操作。
【问题讨论】:
-
到目前为止,我的解决方法是以 100 毫秒运行一个计时器,不断检查 DisplayObject 的宽度。一旦数字大于0,我就知道它终于被绘制到屏幕上了。
-
Event.ADDED_TO_STAGE有效吗?还是仅在添加后,在实际渲染之前直接调度? -
您是从外部加载图像还是在 swf 中编译此图像?
-
除了 Additional_To_Stage(如果为时过早的话),您可能需要查看 RENDER 事件。当然,如果您只需要能够操作 bitmapData,您可以使用 Loader 中的 COMPLETE 事件(如果它是在运行时加载而不是嵌入)。
-
啊,那好吧。认为这可能值得一试。据我所知,您在第一条评论中的解决方案可能会尽可能好,但也许使用
ENTER_FRAME而不是每 100 毫秒在每个新帧上检查它可能会更好。我对优化了解不多,但是由于您检查渲染时间,因此检查每一帧可能会更有效。
标签: actionscript-3 flash addchild displayobject