Note that there are some explanatory texts on larger screens.

plurals
  1. POHow do I pass a dynamic URL from XML into an onClick Mouse Event in ActionScript 3?
    primarykey
    data
    text
    <p>I'm loading the XML in, and I'm able to read the XML nodes into text fields in my flash. It is also loading the URL, but the last one from the loop. It's not loading the one that I click on. I tried using <code>event.target</code>, but that is not working. I'm pretty close to figuring it out, I'm just not sure where to look.</p> <pre><code>// 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 &lt; 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].@rel.toString(); 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); } </code></pre> <hr> <p>I'm getting closer, I managed to create an array, with an index value - so now I can choose different URLs from the array to play, but I'm still unsure how to target the one that I'm clicking directly on and have that play.</p> <p>Here is my updated code:</p> <pre><code>// 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 &lt; 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].@rel.toString(); tracksArray[trackNum] = xmlList.children().track[trackNum].@rel.toString(); 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]); } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload