在应用程序启动/初始化之前在flex中加载xml文件
我有一个配置xml文件,我需要在flex应用程序启动之前解析它的值 我创建了一个静态类,允许检索xml配置文件中的值 我在应用程序第一次加载时初始化这个类,但是由于xml文件是用一个加载类加载的,该类同步加载一个xml文件,所以在实际加载xml文件之前,该类被要求提供值,因此它抛出了一个错误在应用程序启动/初始化之前在flex中加载xml文件,xml,apache-flex,flash,actionscript-3,e4x,Xml,Apache Flex,Flash,Actionscript 3,E4x,我有一个配置xml文件,我需要在flex应用程序启动之前解析它的值 我创建了一个静态类,允许检索xml配置文件中的值 我在应用程序第一次加载时初始化这个类,但是由于xml文件是用一个加载类加载的,该类同步加载一个xml文件,所以在实际加载xml文件之前,该类被要求提供值,因此它抛出了一个错误 有没有一种方法可以同步加载这个xml文件,或者有人可以建议解决这个问题?我们不能将文件作为类变量嵌入,因为我们需要能够远程更改值。使用状态如何?默认状态显示xml加载时的微调器,加载过程的完整事件的处理程序
有没有一种方法可以同步加载这个xml文件,或者有人可以建议解决这个问题?我们不能将文件作为类变量嵌入,因为我们需要能够远程更改值。使用状态如何?默认状态显示xml加载时的微调器,加载过程的完整事件的处理程序更改为另一个状态,该状态删除微调器并添加主容器
不,您不能在Flex中同步加载文件 您需要覆盖set initialized函数
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application
xmlns:mx=”http://www.adobe.com/2006/mxml”
preinitialize=”preInitHandler(event)”>
<mx:Script>
<![CDATA[
private function preInitHandler (event : Event) : void
{
//load the xml, add the xmlCompleteHandler as a listener
}
private function xmlCompleteHandler (event : Event) : void
{
//handle the xml
super.initialized = true;
}
override public function set initialized (value : Boolean) :
void
{
// don't do anything, so we wait until the xml loads
}
]]>
</mx:Script>
</mx:Application>
好把戏,库奥,但是。。。
我们必须处理在框架调用之前加载XML文件的情况
已初始化=真
大概是这样的:
private var_fileLoaded:Boolean=false
private var_initialized:Boolean=false
私有函数xmlCompleteHandler(事件:事件):void
//处理xml
_fileLoaded=true
super.initialized=\u fileLoaded&&u initialized
}
重写已初始化的公共函数集(值:布尔):void{
_初始化=值;
super.initialized=\u fileLoaded&&u initialized;
}我发现,当应用程序联机时,重写initialized属性不会处理得很好
相反,您最好使用property creationPolicy。当设置为“none”时,此属性将保留容器的子创建,直到调用方法createComponentsFromDescriptors为止
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
preinitialize="{loadStuff();}"
creationPolicy="none">
<mx:Script>
<![CDATA[
private function loadStuff():void {
// Load your stuff here
}
private function loadStuffHandler(event:Event):void {
// This should be called when loading (from loadStuff method) finishes
createComponentsFromDescriptors();
}
]]>
</mx:Script>
</mx:Application>
re:Jami。。。
createComponentsFromDescriptors()代码>现在是createDeferredContent()代码>