MXML 组件可能非常复杂,包含许多嵌套控件,包括异步加载的内容,例如 Image/SWFLoader。
是否有一个我可以在我的组件上观察的事件,只有在每个控件和子组件(包括 SWF 和图像)加载时才会引发?
MXML 组件可能非常复杂,包含许多嵌套控件,包括异步加载的内容,例如 Image/SWFLoader。
是否有一个我可以在我的组件上观察的事件,只有在每个控件和子组件(包括 SWF 和图像)加载时才会引发?
如果您正在谈论加载 swf 内容或类似的任何真正外部的内容,CreationComplete 将无法解决问题。当 MXML 组件按照 MXML 中的定义(IE 嵌套组件、按钮、框、画布等)进行布局时,CreationComplete 会被触发,因此需要从外部加载的内容(图像、swf)不计算在内。
您需要做的是跟踪您正在等待的所有内容,并在所有这些元素加载后触发自定义事件。
一种可能的骇人听闻的方法是监听与每个元素相关的任何加载完成事件,然后让它们回调到相同的函数,该函数增加一个等于您正在等待的组件数量的值。这意味着如果您正在修改它,您必须更加注意它,但这也意味着您不必检查每个需要加载的元素的布尔值(IE“if (image1Loaded && image2Loaded && swfLoaded)”等)
In some complex cases, like when your component is considered "finished" only when some data has been retrieved via HTTP or something like that, custom event is your best bet.
onApplicationComplete 事件?
creationComplete 事件应该可以解决问题 - 在子组件上调用 creationComplete 之后,它会在父组件上调用。
您可以在Adobe 文档中获得有关组件生命周期的更多信息。