zoukankan      html  css  js  c++  java
  • Flex动态加载SWF文件并获取对象类

    示例
    关键代码:
      1 <?xml version="1.0" encoding="utf-8"?>
      2 <!--
      3 
      4   [Pepe's Samples] part 1
      5 
      6     Author  : Pepe at Flex User Group in Japan (FxUG).
      7               an architect at LINKcom corporation.
      8     Blog    : http://Shigeru-Nakagaki.com/
      9     FxUG    : http://www.fxug.net/
     10     LINKcom : http://www.linkcom.co.jp/ (Japanese only)
     11 
     12     Instructions
     13       You can use this sample code in your own responsibility.
     14 
     15 -->
     16 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
    viewSourceURL
    ="srcview/index.html">
     17 
     18     <mx:creationComplete>
     19         <![CDATA[
     20             initApp();
     21         ]]>
     22     </mx:creationComplete>
     23 
     24     <mx:Script>
     25         <![CDATA[
     26             import flash.utils.describeType;
     27             import mx.controls.Alert;
     28             
     29             
     30             private var ld:Loader;
     31             
     32             private function initApp():void
     33             {
     34                 ld = new Loader();
     35                 ld.contentLoaderInfo.addEventListener(Event.COMPLETE,loadCompleted);
     36                 ld.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrHandler);
     37                 ld.contentLoaderInfo.addEventListener(
    SecurityErrorEvent.SECURITY_ERROR,securityErrHandler);
     38             }
     39             
     40             private function loadSWF():void
     41             {
     42                 var sSWF:String = txtURL.text;
     43                 var req:URLRequest = new URLRequest(sSWF);
     44                 var context:LoaderContext = new LoaderContext(false,
    ApplicationDomain.currentDomain,null);
     45                 req.contentType = "";
     46                 ld.load(req,context);
     47             }
     48             
     49             private function getDef():void
     50             {
     51                 var cls:Class = loadClassDefinition(txtClassName.text);
     52                 if(cls){
     53                     var obj:Object = new cls();
     54                     txtDump.text = flash.utils.describeType(obj).toString();
     55                 }
     56             }
     57 
     58             private function loadCompleted(e:Event):void
     59             {
     60                 Alert.show("[" + e.target.url + "] loaded");
     61             }
     62             
     63             private function ioErrHandler(e:IOErrorEvent):void
     64             {
     65                 Alert.show(e.text);
     66             }
     67             
     68             private function securityErrHandler(e:IOErrorEvent):void
     69             {
     70                 Alert.show(e.text);
     71             }
     72             
     73             private function loadClassDefinition(sClassName:String):Class
     74             {
     75                 var cls:Class = null;
     76                 try{
     77                     cls = ld.contentLoaderInfo.applicationDomain.
    getDefinition(sClassName) as Class;
     78                     return cls;
     79                 }catch(e:Error){
     80                     throw new IllegalOperationError(sClassName + " doesn't exist");
     81                 }
     82                 return cls;
     83             }
     84             
     85             
     86         ]]>
     87     </mx:Script>
     88 
     89     <mx:Label text="A sample of describing class definition " fontWeight="bold" fontSize="16"/>
     90     <mx:HRule width="100%" height="40" />
     91     <mx:HBox width="100%">
     92         <mx:TextInput id="txtURL" text=
    "http://Shigeru-Nakagaki.com/flex_samples/ApplicationDomain/getDefinitionDump
    /RunTimeClass03/RunTimeClass03.swf"
     width="400" />
     93         <mx:Button x="10" y="10" label="Load SWF" click="loadSWF()"/>
     94     </mx:HBox>
     95     <mx:HBox width="100%">
     96         <mx:TextInput id="txtClassName" text="org.Pepe.ExPanel" width="400" />
     97         <mx:Button x="10" y="40" label="Get Definition" click="getDef()"/>
     98     </mx:HBox>
     99     <mx:HBox width="100%" height="90%">
    100         <mx:TextArea id="txtDump" width="100%" height="100%"/>
    101     </mx:HBox>
    102     
    103 </mx:Application>
    104 
    105 
  • 相关阅读:
    大数据挖掘算法篇之K-Means实例
    断篇-金融大数据最佳实践总结篇
    网络爬虫之Windows环境Heritrix3.0配置指南
    开源中文分词框架分词效果对比smartcn与IKanalyzer
    Eclipse整合Tomcat开发Dynamic Web Project环境总结
    c#系统消息类封装
    Uploadify v3.2.1 参数说明
    js 或 且 非
    数据注解特性--NotMapped
    SQLServer2008/2005 生成数据字典语句
  • 原文地址:https://www.cnblogs.com/jssy/p/887815.html
Copyright © 2011-2022 走看看