Hi guys,
I’m doing a little exercise to fully understand XML.
So I made an XML :
[SIZE=2]
<?xml version="1.0" encoding="utf-8"?>
<PLAYLIST>
<CHAPTERS>
<CHAPTER TYPE="CHAPITRE 1">
<VIDEO TITLE="VIDEO_1"/>
<VIDEO TITLE="VIDEO_2"/>
<VIDEO TITLE="VIDEO_3"/>
<VIDEO TITLE="VIDEO_4"/>
<VIDEO TITLE="VIDEO_5"/>
<VIDEO TITLE="VIDEO_6"/>
</CHAPTER>
<CHAPTER TYPE="CHAPITRE 2">
<VIDEO TITLE="VIDEO_7"/>
<VIDEO TITLE="VIDEO_8"/>
<VIDEO TITLE="VIDEO_9"/>
</CHAPTER>
<CHAPTER TYPE="CHAPITRE 3">
<VIDEO TITLE="VIDEO_10"/>
<VIDEO TITLE="VIDEO_11"/>
<VIDEO TITLE="VIDEO_12"/>
<VIDEO TITLE="VIDEO_13"/>
</CHAPTER>
</CHAPTERS>
</PLAYLIST>
Then in order to load the XML, i did this :
var my_list:XMLList;
var my_total:Number;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("LectureXML.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
var myXML:XML = new XML(e.target.data);
var my_total:int=0;
for(var i in myXML.CHAPTERS.CHAPTER)
{
my_total += myXML.CHAPTERS.CHAPTER*.VIDEO.length();
trace(my_total);
trace("===>" + myXML.CHAPTERS.CHAPTER*.@TYPE);
for(var j in myXML.CHAPTERS.CHAPTER*)
{
my_list = myXML.CHAPTERS.CHAPTER*[j].VIDEO;
trace(myXML.CHAPTERS.CHAPTER*[j].VIDEO.@TITLE);
trace(my_list);
}
}
DisplayList();
}
[/SIZE]
The trace(); is doing all right, it gives me exactly what I want :
[SIZE=1]6
===>CHAPITRE 1
VIDEO_1VIDEO_2VIDEO_3VIDEO_4VIDEO_5VIDEO_6
9
===>CHAPITRE 2
VIDEO_7VIDEO_8VIDEO_9
13
===>CHAPITRE 3
VIDEO_10VIDEO_11VIDEO_12VIDEO_13
[/SIZE]
Now, I want to display it but I can’t make it work.
Here’s what I did :
function DisplayList ():void {
for (var j:int = 0; j<my_total; j++){
////// TITRE DE CHAPITRE //////
var chapter_title = my_list[j].@TYPE;
var chapter_txt:TextField = new TextField();
chapter_txt.text = chapter_title;
chapter_txt.y = 20*j;
chapter_txt.wordWrap = false;
addChild(chapter_txt);
////// TITRE DE VIDEO //////
var video_title = my_list[j].@TITLE ;
var video_txt:TextField = new TextField();
video_txt.text = video_title;
video_txt.x = 0*j;
video_txt.y = 10*j;
video_txt.wordWrap = false;
addChild(video_txt);
}
}
I’m kind of lost.
Thanks for helping me out