如何判断MXML组件何时完全完成创建?

时间:2020-03-06 14:56:43  来源:igfitidea点击:

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

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

解决方案

onApplicationComplete事件?

creationComplete事件应该可以完成对子组件调用之后在父组件上调用creationComplete的技巧。

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

在某些复杂的情况下,例如仅当通过HTTP或者类似方式检索到某些数据时,才将组件视为"完成",自定义事件是最好的选择。

如果我们正在谈论加载swf内容或者诸如此类的真正外部内容,CreationComplete将无法解决问题。当按照MXML中的定义对MXML组件进行布局(即IE嵌​​套组件,按钮,框,画布等)时,会触发CreationComplete,因此需要从外部加载的内容(图像,swf)不计在内。

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

一种可能的变态方法是侦听与每个元素相关的任何加载完成事件,然后让它们调用相同的函数,该函数增加一个值,该值等于我们正在等待的组件数。这意味着如果要对其进行修改,则必须更加注意,但这也意味着我们不必为每个需要加载的元素检查布尔值(例如," if(image1Loaded && image2Loaded && swfLoaded)")。