Flex loaderInfo swf模块获取url传递的参数

来源:互联网 发布:人工智能研究院洛杉矶 编辑:程序博客网 时间:2024/05/07 08:01

Flex的模块传递参数,这里是另外一种方法,第一种方法时在加载模块的地方直接给模块传递参数。请参见Flex ModuleLoader向Module(模块)传递参数实例

      第二种方法就是在被加载的模块中使用loaderInfo属性返回一个 LoaderInfo 对象,其中包含加载此显示对象所属的文件的相关信息。loaderInfo 属性仅为 SWF 文件的根显示对象或已加载的位图(而不是使用 ActionScript 绘制的位图)定义。要查找与包含名为 myDisplayObject 的显示对象的 SWF 文件相关的 loaderInfo 对象,请使用 myDisplayObject.root.loaderInfo。

            大的 SWF 文件可以通过调用 this.root.loaderInfo.addEventListener(Event.COMPLETE, func) 来监控其下载。

以下是使用实例.

主文件:

<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"   xmlns:s="library://ns.adobe.com/flex/spark"   xmlns:mx="library://ns.adobe.com/flex/mx"   viewSourceURL="srcview/index.html"><s:layout><s:VerticalLayout/></s:layout><fx:Script><![CDATA[import mx.core.IVisualElement;import mx.events.ModuleEvent;import mx.modules.IModuleInfo;import mx.modules.ModuleManager;   private var _moduleInfo:IModuleInfo;    private function creationHandler():void    {  _moduleInfo = ModuleManager.getModule("com/myflexhero/MyFlexHeroTest.swf?loginName=admin&password=123456");   _moduleInfo.addEventListener( ModuleEvent.READY,moduleLoadHandler );  _moduleInfo.addEventListener( ModuleEvent.PROGRESS,onModuleProgress);  _moduleInfo.load();     }     private function moduleLoadHandler(event:ModuleEvent ):void    {   BorderContainer.addElement( _moduleInfo.factory.create() as IVisualElement);  }   protected function onModuleProgress (e:ModuleEvent) : void {     label.text = "[MyFlexHero]:ModuleEvent.PROGRESS 当前已经加载了: " + e.bytesLoaded + " of " + e.bytesTotal + " loaded.";    }    ]]></fx:Script> <s:BorderContainer id="BorderContainer" width="500" height="200" /><s:Label id="label" text="[MyFlexHero]:"/><s:Button label="点击加载" click="creationHandler()"/></s:Application>
<?xml version="1.0" encoding="utf-8"?><mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009"    xmlns:s="library://ns.adobe.com/flex/spark"    xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute" width="100%" height="100%" creationComplete="module1_creationCompleteHandler(event)"><fx:Script><![CDATA[import mx.events.FlexEvent; protected function module1_creationCompleteHandler(event:FlexEvent):void{var query:String = loaderInfo.url.toString();query = query.replace(/.*\?/, "");var params:Array = query.split( "&" );var keyVal:Array = ( params[0] ).toString().split("="); loginName.text = keyVal[1]; keyVal = ( params[1] ).toString().split("="); password.text = keyVal[1];} ]]></fx:Script> <s:Panel title="MyFlexHeroTest" width="100%" height="100%"><s:VGroup width="100%" height="100%"> <s:HGroup width="100%"><s:Label text="用户名:" /><s:Label id="loginName"/></s:HGroup><s:HGroup width="100%"><s:Label text="密码:" /><s:Label id="password"/></s:HGroup> </s:VGroup></s:Panel></mx:Module>



0 0
原创粉丝点击