Je charge le XML dans, et je suis capable de lire les nœuds XML dans des champs de texte dans mon flash. Il charge également l'URL, mais le dernier de la boucle. Il ne charge pas celui sur lequel je clique. J'ai essayé d'utiliser event.target
, mais cela ne fonctionne pas. Je suis assez proche de comprendre, je ne suis pas sûr de savoir où chercher.Comment puis-je transmettre une URL dynamique à partir de XML dans un événement onClick Mouse dans ActionScript 3?
// loads xml
var xml:XML = new XML();
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest(audioPlaylist));
loader.addEventListener(Event.COMPLETE, onComplete);
function onComplete(evt:Event):void {
xml = XML(evt.target.data);
xmlList = xml.children();
trace(xmlList);
trackLength = xmlList.children().children().length();
trace(trackLength);
for(var i:int = 0; i < trackLength; i++) {
trace(i);
var track:Playlist_item = new Playlist_item();
track.y = i * 28;
track.playlist_text.text = xmlList.children().track[i].toString();
trackURL = xmlList.children().track[i][email protected]();
trace(trackURL);
playlist_container.addChild(track);
track.buttonMode = true;
track.mouseChildren=false;
track.addEventListener(MouseEvent.MOUSE_OVER, onCarHover);
track.addEventListener(MouseEvent.MOUSE_OUT, onCarOut);
track.addEventListener(MouseEvent.CLICK, onClickLoadData);
}
}
function onCarHover(event:MouseEvent):void {
event.target.gotoAndStop(6);
}
function onCarOut(event:MouseEvent):void {
event.target.gotoAndStop(10);
}
function onClickLoadData(event:MouseEvent):void {
ns.play(trackURL);
}
Je me rapproche, je réussi à créer un tableau, avec une valeur d'index - maintenant je peux choisir différentes URL à partir du tableau à jouer, mais je ne suis toujours pas sûr comment cibler celui sur lequel je clique directement et qui joue.
Voici mon code mis à jour:
// xml variables
var xmlList:XMLList;
var trackLength:Number;
var trackURL;
var trackNum:Number = -1;
var tracksArray:Array = new Array();
// loads xml
var xml:XML = new XML();
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest(audioPlaylist));
loader.addEventListener(Event.COMPLETE, onComplete);
function onComplete(evt:Event):void {
xml = XML(evt.target.data);
xmlList = xml.children();
trace(xmlList);
trackLength = xmlList.children().children().length();
while (trackNum < trackLength) {
trackNum = trackNum + 1;
trace(trackNum);
var track:Playlist_item = new Playlist_item();
track.y = trackNum * 28;
playlist_container.addChild(track);
track.buttonMode = true;
track.mouseChildren=false;
track.playlist_text.text = xmlList.children().track[trackNum].toString();
//trackURL = xmlList.children().track[trackNum][email protected]();
tracksArray[trackNum] = xmlList.children().track[trackNum][email protected]();
track.addEventListener(MouseEvent.MOUSE_OVER, onCarHover);
track.addEventListener(MouseEvent.MOUSE_OUT, onCarOut);
track.addEventListener(MouseEvent.CLICK, onClickLoadData);
}
}
function onCarHover(event:MouseEvent):void {
event.target.gotoAndStop(6);
}
function onCarOut(event:MouseEvent):void {
event.target.gotoAndStop(10);
}
function onClickLoadData(event:MouseEvent):void {
trace(tracksArray[5]);
trace(event.target.trackNum);
ns.play(tracksArray[5]);
}