2011-07-10 80 views
0

我不是很擅長AS3,但我將XML導入到我的Flash中,並且我想從下拉菜單中動態更改它。我需要用簡單的字符串在下面的腳本中更改「THISPLACE」,我該怎麼做?感謝您的幫助:)Flash動作腳本3問題,無法更改屬性名稱

function uzkrautXML():void 
{ 
    var XMLURLLoader:URLLoader = new URLLoader(); 
    XMLURLLoader.load(new URLRequest(xmlArdesas)); 
    XMLURLLoader.addEventListener(Event.COMPLETE, processXML); 
} 

function processXML(event:Event):void 
{ 
    var theXMLData:XML = new XML(XMLURLLoader.data); 
    visoSk = theXMLData.THISPLACE.length(); 

    for (var i:Number = 0; i <visoSk; i++) 
    { 
     skArray.push(theXMLData.THISPLACE[i]); 
    } 

    uzkrautSkelbimus(); 
} 

我知道有在代碼中的錯誤,但不介意它,我需要知道如何更換plase

+0

你可以給你正在加載的XML的樣本?你是否試圖改變它或結構中的值?在這裏查看一個不錯的教程:http://www.adobe.com/devnet/flash/articles/filtering_data_e4x.html –

+0

當你在AS3中命名對象時,我建議使用camelcase。我建議將'XMLURLLoader'改爲'xmlURLLoader'或'xmlUrlLoader'或者甚至只是'urlLoader'。你也可能想在[object] [event type]上使用這個公式來命名你的事件處理程序,例如'onXMLURLLoaderComplete'或'onXmlUrlLoaderComplete'。 – Taurayi

回答

0

您可以使用頂級XML類的子()方法。

function processXML(event:Event):void 
{ 

    var theXMLData:XML = new XML(XMLURLLoader.data); 
    theXMLData.ignoreWhite = true; 
    visoSk = theXMLData.child("THISPLACE_NAME").length(); 

    for (var i:Number = 0; i <visoSk; i++) 
    { 
     skArray.push(theXMLData.child("THISPLACE_NAME")[i]); 
    } 
    uzkrautSkelbimus(); 
} 

希望這會有所幫助。

+0

謝謝,這有助於,但現在我有另一個問題: 我Wnt信號寫入該行是這樣的: visoSk = theXMLData.THISPLACE.anyName.length(); 我該做什麼呢? – CGpro

+0

第二個問題是愚蠢的......不介意它:D你救了我的男人,非常感謝你;) – CGpro

+0

非常歡迎,@CGpro。你不想提出答案並接受它嗎? – surlac