![](/img/trans.png)
[英]I have HTML code embedded in an XML file displaying as code in browser
[英]I have a xml file with code in it and i need to integrate that code in as3. How can i do that?
我想向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標記可能需要格式化(目前無法測試代碼)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.