Загрузка данных из XML в поле со списком - PullRequest
0 голосов
/ 19 августа 2011

Мой XML выглядит следующим образом

<?xml version="1.0" encoding="utf-8"?>
<Images>
<Image imgID = "1" >
        <imgName>"Angelina Jolie"</imgName>
            <url>"Angelina Jolie.jpg"</url> 
</Image>

<Image imgID = "2" >
    <imgName>"Big B"</imgName>
    <url>"Big B.jpg"</url>
</Image>

<Image imgID = "3" >
     <imgName>"Brad Pitt"</imgName>
     <url>"Brad Pitt.jpg"</url> 
</Image>

<Image imgID = "4" >
    <imgName>"Mohanlal"</imgName>
    <url>"Mohanlal.jpg"</url>
</Image>

<Image imgID = "5" >
    <imgName>"Prithviraj"</imgName>
    <url>"Prithviraj.jpg"</url>
</Image>
<Image imgID = "6" >
    <imgName>"Tom Cruise"</imgName>
    <url>"Tom Cruise.jpg"</url>
</Image>
</Images>

В моей папке есть XML, как показано. В папке 6 изображений, а имена даны в виде URL. У меня есть поле со списком на сцене. Свое имя myCB. Есть держатель изображения imgHolder_mc.

У меня две задачи.

Заполните поле со списком imageNames.

В зависимости от выбранного imageName изображение в держателе изображения должно измениться. Изображение должно быть получено с помощью URL-адреса изображения.

Это то, что я сделал до сих пор

import fl.data.DataProvider;

myCB.prompt = "Select Image:";
var model_dp:DataProvider = new DataProvider(xmlData);
myCB.dataProvider = model_dp;



// Creates the variable(s) to load the XML externally
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();

// Ensuring that we do not prematurely start fiddling with the XML data until all of our data has been loaded
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
// We call our xmlLoader's load method
xmlLoader.load(new URLRequest("Images.xml"));

function LoadXML(e:Event):void {
    xmlData = new XML(e.target.data);
    trace(xmlData..imgName);  

}

След дает мне

<imgName>"Angelina Jolie"</imgName>
<imgName>"Big B"</imgName>
<imgName>"Brad Pitt"</imgName>
<imgName>"Mohanlal"</imgName>
<imgName>"Prithviraj"</imgName>
<imgName>"Tom Cruise"</imgName>

Пожалуйста, посоветуйте мне, как я могу связать это со своим комбинированным списком и выбрать изображения в соответствии с выбором, который я сделал в комбинированном окне.

1 Ответ

2 голосов
/ 19 августа 2011
myCB.prompt = "Select Image";
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
var xmlAry:Array = new Array();
var xmlURL:Array = new Array();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest("Images.xml"));
function LoadXML(e:Event):void {
    xmlData = new XML(e.target.data);
    trace(xmlData..imgName.length());
    for(var i:uint=0;i<xmlData..imgName.length();i++)
    {
        xmlAry.push(xmlData..imgName[i]);
        xmlURL.push(xmlData..url[i]);
        myCB.addItem( { label: xmlAry[i], data:i } );
        myCB.addEventListener(Event.CHANGE, action);
    }
}
function action (e:Event):void 
{
    var no:Number = Number(myCB.selectedItem.data);
    trace(xmlURL[no]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...