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

时间:2008-09-30 20:13:00

标签: flex mxml

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

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

4 个答案:

答案 0 :(得分:2)

如果您正在讨论加载swf内容或任何非常类似的外部内容,CreationComplete将无法解决问题。当MXML组件按照MXML(IE嵌套组件,按钮,框,画布等)中的定义布局时,CreationComplete会被触发,因此需要从外部加载的内容(图像,swf)不计算在内。 / p>

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

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

答案 1 :(得分:1)

onApplicationComplete事件?

答案 2 :(得分:1)

creationComplete事件应该做 - 在子组件上调用后,在父组件上调用creationComplete。

您可以在Adobe docs

中获取有关组件生命周期的更多信息

答案 3 :(得分:1)

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