2010-02-19 59 views
0

這裏是xml文件如何獲取所有XML-Nodes屬性值?

<glossary> 
<alphabet id="A"> 
    <term heading= "Anchor" definition="A mechanical device that prevents a vessel from moving"/> 
     <term heading= "Atlas" definition="A collection of maps in book form"/> 
    </alphabet> 
    <alphabet id="D"> 
     <term heading= "Delay" definition="Time during which some action is awaited"/> 
    </alphabet> 
    <alphabet id="R"> 
     <term heading= "Risk" definition="A source of danger; a possibility of incurring loss or misfortune"/> 
     <term heading= "Rotate" definition="Turn on or around an axis or a center"/> 
    </alphabet> 

</glossary> 

FLA文件:

import fl.controls.List; 
import fl.events.ListEvent; 
var xmlLoader:URLLoader= new URLLoader(); 
xmlLoader.load(new URLRequest("datalist.xml")); 
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded); 
var xmlData:XML= new XML(); 
var myArr:Array= new Array(); 
function xmlLoaded(e:Event):void { 
    xmlData= new XML(e.target.data); 
    xmlData.ignoreWhitespace = true; 
    //trace(xmlData.term.length()); 
    ParseData(xmlData); 
} 
function ParseData(dispTerm:XML):void { 
    var termList:XMLList = [email protected]; 
    //trace(termList) 
    var meaningList:XMLList = [email protected]; 
    //trace(meaningList) 
    for (var i:int = 0; i < termList.length(); i++) { 
     var termElement:XML = termList[i]; 
     var meaningElement:XML = meaningList[i]; 
     mytermList.addItem({label:termList[i], data:termList[i]}); 
     mytermList.addEventListener(ListEvent.ITEM_CLICK, itemclicked); 
     //[email protected]; 
     //mymeaningList.addItem({label:meaningList[i], data:meaningList[i]}); 
    } 
} 

function itemclicked(evt:ListEvent):void { 
    //trace(evt.item.definition.attribute); 
    /*for (var i:int = 0; i < termList.length(); i++) { 
    mymeaningList.addItem({label:meaningList[i], data:meaningList[i]}); 
    }*/ 
} 

在這個例子中,標題是顯示在列表中,我希望當列表項的用戶點擊,相關定義將顯示另一個列表。 這個fla文件可能嗎?或者我需要另一個班級文件?

回答

0

是的,它可以在一個FLA文件中。

僅僅是您的termList的事件監聽器,可以將意義添加到您的meaningList上。類似這樣的:

termList.addEventListener(ListEvent.ITEM_ROLL_OVER, showDetails); 

function showDetails(e:ListEvent):void { 
    //code to add item to meaningList 
}