我正在尝试在init()方法中使用按钮。
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" title="Test"
creationComplete="init()">
现在当我尝试用我的按钮做某事时,我得到了提到的错误。我假设它可能尚未加载?
function init():void{
myButton.thisorthat == makes the error.
}
*的 修改 ** 该按钮是用MXML btw创建的 并不重要,但这适用于灵活的移动应用程序。
答案 0 :(得分:3)
实际上确实很重要。有关NavigatorContent(假设您的孩子是这些类型的容器之一的子集)与其光环对应物一起记忆的一件事是它们都将内容创建策略设置为延迟 - 这意味着它创建了视图/视图堆栈的父层最多层,但在用户实际导航到该特定孩子之前,不是它的孩子。一个作弊是将策略设置为“ALL”,但更好的方法是实际侦听 FlexEvent.CONTENT_CREATION_COMPLETE (这是从导航的子节点广播)容器)。
例如:
<halo:ViewStack id="setupStack" width="100%" height="100%">
<api:FileSelector width="100%" height="100%" owner="{this}"
enumerationMode="{FileSystemEnumerationMode.DIRECTORIES_ONLY}"
hint="{networkDbAccessHint}" />
<!- this is valid, but not it's children until contentCreateComplete is fired -->
<api:DataImport width="100%" height="100%" owner="{this}" />
</halo:ViewStack>
'FileSelector'和'DataImport'都广播事件(扩展s:NavigatorContent)。