apache flex - 如何判断MXML组件何时完全完成创建



MXML组件可能非常复杂,包含许多嵌套控件,包括异步加载的内容,如Image/SWFLoader。

是否可以在我的组件上监视一个事件,该事件仅在加载每个控件和子组件(包括 SWF 和图像)时引发?

如果您谈论的是加载 swf 内容或任何类似外部的东西,CreationComplete 将无法解决问题。 当 MXML 组件按照 MXML 中的定义进行布局(IE 嵌套组件、按钮、框、画布等)时,CreationComplete 就会被触发,因此需要在外部加载的内容(图像、swf)不计算在内。

您需要做的是跟踪您正在等待的所有内容,并在加载所有这些元素后触发自定义事件。

一种可能的黑客方法是侦听与每个元素相关的任何加载完成事件,然后让它们回调到同一函数,该函数递增一个等于您正在等待的组件数的值。 这意味着如果你正在修改它,你必须更加注意,但这也意味着你不必检查每个需要加载的元素的布尔值(IE"if (image1Loaded && image2Loaded && swfLoaded)"等)。

onApplicationComplete 事件?

creationComplete 事件应该可以解决问题 - 在父组件上调用 creationComplete 后,在父组件上调用它。

您可以在 Adobe 文档中获取有关组件生命周期的更多信息。

在某些复杂的情况下,例如,只有当通过HTTP或类似的东西检索某些数据时,您的组件才被视为"已完成",自定义事件是您最好的选择。

最新更新