今天有个网友提了个这样的一个问题,要求使用Flash主程序读取XML,而XML文件中的元素含有指向另一个swf,也就是通过XML文件读取另一个SWF文件,这比起直接读取外部SWF文件要多一个步骤,即首先读入XML文件。有关读取XML文件的知识我们已经在前面的博文中有所讨论。由于XML文件时文本文件,所以我们需要创建一个URLLoader实例,它是专门用来读取二进制文本文件的类,使用URLRequest实例指向XML地址后,使用load方法载入XML文件。这样外部的XML文件就读取完毕了,读入Flash内部的文件并不默认为XML文件,我们还要将读取的文件进行格式转换,转换成XML。
要想载入文件中的SWF的链接,我们还需要创建一个Loader实例,这是用来载入SWF和图像文件的类,同样需要一个URLRequest类,使用SWF在XML文件中的地址作为参数,接下来步骤就和载入XML文件一样了。希望对广大朋友有帮助。
由于载入的SWF大于主程序的尺寸,所以我在主程序中缩小了loader2的大小,所以字体有点小。
Code:
var myxml:XML=new XML();
var loader:URLLoader=new URLLoader();
var url:<a href=http://www.flashabc.net/catalog.asp?tags=String>String</a>="test.xml";
myxml.ignoreWhitespace=true;
var request:URLRequest=new URLRequest(url);
loader.load(request);
loader.addEvent<a href=http://www.flashabc.net/catalog.asp?tags=List>List</a>ener(Event.COMPLETE,onComplete);
function onComplete(e:Event):void {
myxml=new XML(loader.data);//进行格式转换
var loader2:Loader =new Loader();
var request2:URLRequest=new URLRequest(myxml.swf.url);
loader2.load(request2);
addChild(loader2);
loader2.scaleX=.7
loader2.scaleY=.7
}