PDA

View Full Version : XML to List component and further...


SundanceKid
07-07-2007, 01:11 PM
Hi!

I´m really new to XML and Flash and I would appreciate some help.
What I need is a helping hand to do this:
1. One List component loading an XML with artist names.
2. When I click on an artist name, the songs from that artist should appear in
a second List component.
3. When i click on a song titel in the second List component, an MP3 should
load and start to play in a MediaController component, and some text
information about that song should appear in some dynamic textfield or a
text area component.

Many Thanx for showing me to the right path!
-Sundance Kid-

LOLFlash
07-08-2007, 12:46 AM
var firstNumber:Number;
var firstTimer:Number;
function dblClick(curNumber:Number):Boolean{
var myreturn:Boolean = false;
var curTimer = getTimer();
if((curTimer - firstTimer)<300 && curNumber == firstNumber) myreturn = true;
firstNumber = curNumber;
firstTimer =curTimer;
return myreturn;
}

var myListXML = new XML();
myListXML.ignoreWhite = true;
myListXML.onLoad = function(success){
if(success) firstLst.dataProvider = this.firstChild.childNodes;
}
myListXML.load("myMenuXML.xml");

function firstLstClick(evt:Object):Void{

if(dblClick(evt.target.selectedIndex))secondLst.da taProvider = evt.target.selectedItem.childNodes;

}
firstLst.addEventListener("change",firstLstClick);

function secondLstClick(evt:Object):Void{
if(dblClick(evt.target.selectedIndex))trace(evt.ta rget.selectedItem.attributes.data);

}
secondLst.addEventListener("change",secondLstClick);


xml:


<?xml version="1.0" encoding="iso-8859-1"?>
<items>
<item label="Artist 1">
<item label="Song 1 Artist 1" data="song1Link"/>
<item label="Song 1 Artist 1" data="son2Link"/>
</item>

<item label="Artist 2">
<item label="Song 1 Artist 2" data="song1Link"/>
<item label="Song 1 Artist 2" data="son2Link"/>
</item>

<item label="Artist 3">
<item label="Song 1 Artist 3" data="song1Link"/>
<item label="Song 1 Artist 1" data="son2Link"/>
</item>

<item label="Artist 4">
<item label="Song 1 Artist 4" data="song1Link"/>
<item label="Song 1 Artist 4" data="son2Link"/>
</item>

<item label="Artist 5">
<item label="Song 1 Artist 5" data="song1Link"/>
<item label="Song 2 Artist 5" data="son2Link"/>
<item label="Song 3 Artist 5" data="song1Link"/>
<item label="Song 4 Artist 5" data="son2Link"/>
<item label="Song 5 Artist 5" data="song1Link"/>
<item label="Song 6 Artist 5" data="son2Link"/>
</item>

<item label="Artist 1">
<item label="Song 1 Artist 1" data="song1Link"/>
<item label="Song 1 Artist 1" data="son2Link"/>
</item>
</items>

SundanceKid
07-08-2007, 11:27 AM
Many Thanx LOLFlash!
I will check this out at once!

-Sundance Kid-

SundanceKid
07-08-2007, 02:49 PM
Thanx again, I´m working on it and... noticed that I need a little more help.
The two list works perfectly but there are two things I cant figure out.
1. How to get the music to play in the mediaController. (I get the trace pop)
2. Is ther another solutions instedd of the dubbel click (dblClick)?? Single click!!

I noticed that as a designer I really suck on AS. :confused:

Many Thanx again!
-Sundance Kid-

LOLFlash
07-08-2007, 04:04 PM
theris your code without dblClick but haw to do music to play in the mediaController sry dont know never did Jukebox

var myListXML = new XML();
myListXML.ignoreWhite = true;
myListXML.onLoad = function(success){
if(success) firstLst.dataProvider = this.firstChild.childNodes;
}
myListXML.load("myMenuXML.xml");

function firstLstClick(evt:Object):Void{

secondLst.dataProvider = evt.target.selectedItem.childNodes;

}
firstLst.addEventListener("change",firstLstClick);

function secondLstClick(evt:Object):Void{
trace(evt.target.selectedItem.attributes.data);

}
secondLst.addEventListener("change",secondLstClick);

SundanceKid
07-08-2007, 04:10 PM
Thank You LOLFlash!! You are the best! Now I´m almost there, with a
little bit brainstorming I will get this to work!

Thanx!
-Sundance Kid-