我有一个包含代码的xml文件,我需要将该代码集成到as3中。我该怎么做?

我有一个包含代码的xml文件,我需要将该代码集成到as3中。我该怎么做?,xml,actionscript-3,flash,action,Xml,Actionscript 3,Flash,Action,我想为flash AS3添加几行代码。如果这些行是xml中的,并且所需的数据是通过加载xml的函数获取的,那么我如何能够做到这一点呢。 我需要在flash中添加这些行吗?我该怎么做 <?xml version="1.0" encoding="utf-8"?> <game> <!-- "Level id" number is not required. Just I added it for fast calculating --> <!--

我想为flash AS3添加几行代码。如果这些行是xml中的,并且所需的数据是通过加载xml的函数获取的,那么我如何能够做到这一点呢。 我需要在flash中添加这些行吗?我该怎么做

<?xml version="1.0" encoding="utf-8"?>

<game>


<!-- "Level id" number is not required. Just I added it for fast calculating -->



<!-- Page 1 -->

<Level id="1" star3="6" star2="10">
<Row>2,2,2,2</Row>
<Row>2,2,0,0</Row>
<Row>2,2,2,2</Row>
<Row>1,1,4,4</Row>
<Row>1,1,4,4</Row>
</Level>


<Level id="2" star3="8" star2="12">
<Row>2,2,2,2</Row>
<Row>2,2,2,2</Row>
<Row>0,1,1,0</Row>
<Row>3,3,4,4</Row>
<Row>3,3,4,4</Row>
</Level>


<Level id="3" star3="8" star2="12">
<Row>1,0,1,1</Row>
<Row>1,0,1,1</Row>
<Row>1,1,4,4</Row>
<Row>1,1,4,4</Row>
<Row>1,1,1,1</Row>
</Level>


<Level id="4" star3="8" star2="12">
<Row>3,1,1,0</Row>
<Row>3,1,1,0</Row>
<Row>2,2,2,2</Row>
<Row>3,3,4,4</Row>
<Row>3,3,4,4</Row>
</Level>
.
.
.
etc
加载此xml的函数如下所示:

//playBtn.visible=false;
loadXML();
//loading data from the xml file.
function loadXML():void {
var loader:URLLoader=new URLLoader();
loader.addEventListener(Event.COMPLETE,completeXMLHandler);
//defining request.;
var request:URLRequest = new URLRequest("data.xml");
//try catch any error
try {
    loader.load(request);
} catch (error:Error) {
    trace('error');
}
}

//loading function
function completeXMLHandler(event:Event):void {

var loader:URLLoader = URLLoader(event.target);
var result:XML = new XML(loader.data);
//defining new xml document
var myXML:XMLDocument=new XMLDocument();
myXML.ignoreWhite = true;
myXML.parseXML(result.toXMLString());
//defining node;
var node:XMLNode = myXML.firstChild;
//defining levelNum from the lenght of the node
totalLevel = int(node.childNodes.length);
//pushing the words and their clues to the array
//creating a temporary array for each level, than pushing temporary array to the main array (dataArray)
for (var i:int=0; i<totalLevel; i++) {
    scoreArray.push(9999)
    var temp_array:Array=new Array();
    var row:int = int(node.childNodes[i].childNodes.length);
        starInfoArray.push(node.childNodes[i].attributes.star3+"_"+node.childNodes[i].attributes.star2);
    for (var j:int=0; j<row; j++) {
        var myData = node.childNodes[i].childNodes[j].firstChild.nodeValue;
        temp_array.push(myData);
    }
    dataArray.push(temp_array);
}
}

如果您需要更多详细信息,请告诉我。

您可以将xml嵌入到现有的actionscript 3代码中,并立即访问它

我的意思是:

var gameXML:XML = <game>
    <Level id="1" star3="6" star2="10">
        <Row>2,2,2,2</Row>
        <Row>2,2,0,0</Row>
        <Row>2,2,2,2</Row>
        <Row>1,1,4,4</Row>
        <Row>1,1,4,4</Row>
    </Level>
    <Level id="2" star3="8" star2="12">
        <Row>2,2,2,2</Row>
        <Row>2,2,2,2</Row>
        <Row>0,1,1,0</Row>
        <Row>3,3,4,4</Row>
        <Row>3,3,4,4</Row>
    </Level>
    <Level id="3" star3="8" star2="12">
        <Row>1,0,1,1</Row>
        <Row>1,0,1,1</Row>
        <Row>1,1,4,4</Row>
        <Row>1,1,4,4</Row>
        <Row>1,1,1,1</Row>
    </Level>
    <Level id="4" star3="8" star2="12">
        <Row>3,1,1,0</Row>
        <Row>3,1,1,0</Row>
        <Row>2,2,2,2</Row>
        <Row>3,3,4,4</Row>
        <Row>3,3,4,4</Row>
    </Level>
</game>;

//traverse the game config xml
for each(var level:XML in gameXML.Level.*){//go through each Leve node in the XML
    scoreArray.push(9999);
    starInfoArray.push(level.@star3+"_"+level.@star2);//access the start3 and start2 attributes
    var temp_array:Array = [];
    for each(var row:XML in level.Row.*) //go through each Row node in a Level and get the data 
        temp_array.push(row.text().toXMLString());//you might want to parse these strings at some point and get the int values
    dataArray.push(temp_array);
}

请注意,如果出现语法错误,XML标记可能需要格式化。此时无法测试代码

您的actionscript代码看起来是actionscript 2和3的混合体。什么是XMLDocument?为什么需要它?您可以直接用XML classthx解析以获得回复。我买了这个游戏。只是as3不知道你在哪里看到as2。。。这里有data.xml,您可以在其中找到代码和级别。因此,我需要将它们集成到该函数中,这样就不再需要data.xml,因为当我发布移动版应用程序时,如果没有xml中的数据,游戏将无法运行。请提供一个解决方案。您可以在编译时嵌入XML:如果您使用的是使用嵌入标记的Flash Builder,或者如果您使用的是Flash Professional,只需将XML用作变量,例如var gameXML:XML=ok,但当我发布apk时,XML不会被编译。。。因此,不保留xml中的任何信息。我用的是flash cs6。有没有一种方法可以像添加电子文件一样添加xml?我不确定您是否理解我的意思:在actionscript代码中创建一个xml类型的新变量,并使其值成为您尝试加载的整个xml。您不需要加载任何XML,它已经存在于您的代码中,并且应该与它一起编译。尽管有人建议只在“发布”菜单上添加该文件,因为没有太大的性能更改。所以两者都很好。谢谢你的回答,祝你度过愉快的一天