Hej,
Har en del problem med XML (AS3). Har suttit på egenhand och försökt sy ihop påsen men det blir bara en hög med trassel av allt ihop.
Så tänkte att det är likabra att fråga så att det blir rätt från första början.
Jag vill göra följande (se längst ner för bifogad bildbeskrivning)
Här är min XML-kod:
<?xml version="1.0" encoding="utf-8"?>
<Stores>
<Store>
<title><![CDATA[Test 1]]></title>
<link><![CDATA[/test1.html]]></link>
<img_vert><![CDATA[img1_vert.jpg]]></img_vert>
</Store>
<Store>
<title><![CDATA[Test 2]]></title>
<link><![CDATA[/test2.html]]></link>
<img_vert><![CDATA[img2_vert.jpg]]></img_vert>
</Store>
<Store>
<title><![CDATA[Test 3]]></title>
<link><![CDATA[/test3.html]]></link>
<img_vert><![CDATA[img3_vert.jpg]]></img_vert>
</Store>
</Stores>
Jag har kommit så långt att jag lyckats skapa mitt XML-objekt och ladda in bilderna (se kod nedan).
Dock är det i detta stadie min lycka verkar ta slut.
Min AS-kod:
// XML
// ===================================================
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest("concept.xml"));
function LoadXML(e:Event):void {
xmlData = new XML(e.target.data);
ParseConcept(xmlData);
}
// FUNCTIONS
// ===================================================
function ParseConcept(StoreInput:XML):void {
var StoreList:XMLList = StoreInput.Store;
var imageLoader:Loader;
var movieClipTemp:MovieClip;
for each (var StoreElement:XML in StoreList) {
trace("Concept-XML Output");
trace("-------------------------------------------------------");
trace(StoreElement.title);
trace(StoreElement.link);
trace(StoreElement.img_vert);
trace("-------------------------------------------------------");
imageLoader = new Loader();
imageLoader.load(new URLRequest(StoreElement.img_vert));
movieClipTemp = new MovieClip();
addChild(movieClipTemp);
movieClipTemp.addChild(imageLoader);
}
}
Några av de problemen jag stött på:
- Hur/När kan jag känna av bredd/höjd på bilderna? Jag vill kunna placera dem en efter en under varandra likt en "meny".
- Hur skapar jag en listener som innehåller de unika värden från XML-filen. Dvs varje knapp går till en unik URL.
Då jag vill kunna scrolla knapparna antar jag att jag får placera samtliga i en container (mc). Kan man göra såhär:
[B]var mcContainer:MovieClip;
mcContainer = new MovieClip();
addChild(mcContainer);
[/B]
// XML
// ===================================================
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest("concept.xml"));
function LoadXML(e:Event):void {
xmlData = new XML(e.target.data);
ParseConcept(xmlData);
}
// FUNCTIONS
// ===================================================
function ParseConcept(StoreInput:XML):void {
var StoreList:XMLList = StoreInput.Store;
var imageLoader:Loader;
var movieClipTemp:MovieClip;
for each (var StoreElement:XML in StoreList) {
trace("Concept-XML Output");
trace("-------------------------------------------------------");
trace(StoreElement.title);
trace(StoreElement.link);
trace(StoreElement.img_vert);
trace("-------------------------------------------------------");
imageLoader = new Loader();
imageLoader.load(new URLRequest(StoreElement.img_vert));
movieClipTemp = new MovieClip();
[B]mcContainer.addChild(movieClipTemp);[/B]
movieClipTemp.addChild(imageLoader);
}
}
Skulle någon vänlig själ kunna ge mig lite hjälp på traven.
Fungerar den as-kod jag har i nuläget för att bygga vidare på eller bör man göra på något annat sätt?
Någon som kan ge mig svar på de frågor jag ställt ovan?
Tusen tack!
Vänliga hälsningar / E
