Flash/Actionscript 3 - 导入/嵌入用于导出的XML文件?

问题描述:

如何导入或嵌入XML文件,以便我可以导出100%独立的SWF文件?我的项目为文本字段和图像读取外部XML文件。当我导出SWF文件时,除非将XML文件放在同一目录中,否则不会显示任何图像/文本。我想要一个100%独立的SWF,而不需要XML。Flash/Actionscript 3 - 导入/嵌入用于导出的XML文件?

这里是我到目前为止,这段代码是从一个教程什么:

var imageArray:Array = new Array(); 
var painterArray:Array = new Array(); 
var titleArray:Array = new Array(); 
var dateArray:Array = new Array(); 

//Loader event for the XML 
var loader:URLLoader = new URLLoader(); 
loader.addEventListener(Event.COMPLETE, onLoaded); 

var xml:XML; 

loader.load(new URLRequest("mday.xml")); 

function onLoaded(e:Event):void { 
    //load XML 
    xml=new XML(e.target.data); 
    var il:XMLList=xml.images; 
    listLength=il.length(); 
    //fill up the array from XML 
    populateArray(); 
} 

function populateArray():void { 
    //takes the properties defined in the XML and stores them into arrays 
    var i:Number; 
    for (i = 0; i < listLength; i++) { 
     imageArray[i]=xml.images[i].pic; 
     titleArray[i]=xml.images[i].title; 
     painterArray[i]=xml.images[i].painter; 
     dateArray[i]=xml.images[i].date; 
    } 
} 

的AS连接到一个关键帧,而不是在其单独的类。

谢谢。

因此,而不是装载在外部XML文件中,你将有一个包含所有的XML数据的变量:

var imageArray:Array = new Array(); 
var painterArray:Array = new Array(); 
var titleArray:Array = new Array(); 
var dateArray:Array = new Array(); 

//assign all your xml to your xml variable. Here is some example xml data 
var xml:XML = <gallery> 
<image name="school">image1.jpg</image> 
<image name="garden">image2.jpg</image> 
<image name="shop">image3.jpg</image> 
</gallery>; 

load();//call your load function 

function load():void { 

    var il:XMLList=xml.images; 
    listLength=il.length(); 
    //fill up the array from XML 
    populateArray(); 
} 

function populateArray():void { 
    //takes the properties defined in the XML and stores them into arrays 
    var i:Number; 
    for (i = 0; i < listLength; i++) { 
     imageArray[i]=xml.images[i].pic; 
     titleArray[i]=xml.images[i].title; 
     painterArray[i]=xml.images[i].painter; 
     dateArray[i]=xml.images[i].date; 
    } 
}