加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 05:03:37 所属栏目:百科 来源:网络整理
导读:Flex的模块传递参数,这里是另外一种方法,第一种方法时在加载模块的地方直接给模块传递参数。请参见 Flex ModuleLoader向Module(模块)传递参数实例 ??????第二种方法就是在被加载的模块中使用loaderInfo属性返回一个 LoaderInfo 对象,其中包含加载此显示对

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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读