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

此方法是在被加载的模块中使用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>

MyFlexHeroTest.mxml
<?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>


From http://www.myflexhero.com/share/flex-hero-flex4/flex-hero-components/flex-module/292

你可能感兴趣的:(xml,Flex,actionscript)