URL中莫名其妙出现的[[DYNAMIC]]

今天在用Flex4.6写的外壳加载3.6写的旧项目文件时,出现如下情况,要加载的文件用相对路径访问:

 config/config.xml  
`</pre>
然而,发现在加载时发送的请求是如下莫名其妙的URL:

<pre>` http://yourDomain.com/yourSwf.swf?/[[DYNAMIC]] /config/config.xml  
`</pre>
这是要闹哪样啊!!!我儿子还等我下班回去给他买果泥啊!!掀桌子!!
冷静下来之后,一步步移除,尝试了降级指定的FlashPlayer版本,移除新引入的swc,都没成功,然后我注意到,之前编写的XMLLoader是依赖于mx.rpc.http.mxml.HTTPService 实现功能的,这个Flex从3.x向4.x升级时发生了很大变化,是不是这货不灵了。

于是马上替换了用URLLoader实现的版本,结果马上奏效了,上代码!

<pre>` package  
 {  
      import flash.events.Event;  
      import flash.events.IOErrorEvent;  
      import flash.events.SecurityErrorEvent;  
      import flash.net.URLLoader;  
      import flash.net.URLLoaderDataFormat;  
      import flash.net.URLRequest;  
      public class XMLDataLoader  
      {  
           private var callBack:Function;  
           private var loader:URLLoader;  
           public function XMLDataLoader(url:String,callBack:Function)  
           {  
                this.callBack = callBack;  
                loader = new URLLoader();  
                loader.dataFormat = URLLoaderDataFormat.TEXT;  
                loader.addEventListener(Event.COMPLETE,getXML);  
                loader.addEventListener(IOErrorEvent.IO_ERROR,ioError);  
                loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityError);  
                loader.load(new URLRequest(url));  
           }  
           protected function securityError(event:SecurityErrorEvent):void  
           {  
                callBack(null);  
           }  
           protected function ioError(event:IOErrorEvent):void  
           {  
                callBack(null);  
           }  
           private function getXML(e:Event):void  
           {  
                callBack(XML(URLLoader(e.target).data));  
           }  
      }  
 }  

框架还是不如自己写的靠谱,家中再有不如一技在手。