Can someone take a look at this code please:
I’m trying a code that can load any playlist using class. However, it seems there’s a wrong implementation somewhere. I know I can use IDtag 3 instead but I was wondering why the array data can’t be stored.
In myPlaylist.as
class myPlaylist {
private var TrackInfo:Array =[[]];
private var pre_trkInFolder:Array;
private var pre_totalFolder:Number;
private var pre_totalFiles:Number;
private var loadplaylist:String;
private var curFolNum:Number = 0;
private var curTrkNum:Number = 0;
function myPlaylist(param_playlist:String) {
this.loadplaylist = param_playlist;
}
//initialize
public function loading() {
var playlist = new XML();
playlist.ignoreWhite = true;
playlist.onLoad = function(success) {
if (success) {
var mainTree = this.firstChild;
this.pre_totalFolder = mainTree.childNodes.length;
for (var i = 0; i<this.pre_totalFolder; i++) {
this.pre_trkInFolder* = mainTree.childNodes*.childNodes.length;
for (var j = 0; j<mainTree.childNodes*.childNodes.length; j++) {
this.TrackInfo*[j] = {};
this.TrackInfo*[j].pre_track = mainTree.childNodes*.childNodes[j].childNodes[0].nodeValue;
this.TrackInfo*[j].pre_album = mainTree.childNodes*.childNodes[j].attributes.album;
this.TrackInfo*[j].pre_artist = mainTree.childNodes*.childNodes[j].attributes.artist;
this.TrackInfo*[j].pre_title = mainTree.childNodes*.childNodes[j].attributes.title;
this.TrackInfo*[j].pre_folder = mainTree.childNodes*.attributes.foldername;
this.TrackInfo*[j].pre_id = i*100+j;
this.TrackInfo*[j].pre_played = false;
this.TrackInfo*[j].pre_status = "none";
this.TrackInfo*[j].pre_type = mainTree.childNodes*.childNodes[j].attributes.type;
}
this.pre_totalFiles += this.pre_trkInFolder*;
}
} else {
trace("FAILED");
}
};
playlist.load(this.loadplaylist);
}
public function get curTrack():Number {
return this.curTrkNum;
}
public function set curTrack(param_curTrack:Number):Void {
this.curTrkNum = param_curTrack;
}
public function get curFolder():Number {
return this.curFolNum;
}
public function set curFolder(param_curFolder:Number):Void {
this.curFolNum = param_curFolder;
}
public function get track():String {
return this.TrackInfo[this.curFolNum][this.curTrkNum].pre_track;
}
public function get album():String {
return this.TrackInfo[this.curFolNum][this.curTrkNum].pre_album;
}
public function get artist():String {
return this.TrackInfo[this.curFolNum][this.curTrkNum].pre_artist;
}
public function get title():String {
return this.TrackInfo[this.curFolNum][this.curTrkNum].pre_title;
}
public function get folder():String {
return this.TrackInfo[this.curFolNum][this.curTrkNum].pre_folder;
}
public function get id():Number {
return this.TrackInfo[this.curFolNum][this.curTrkNum].pre_id;
}
public function get played():Boolean {
return this.TrackInfo[this.curFolNum][this.curTrkNum].pre_played;
}
public function get status():String {
return this.TrackInfo[this.curFolNum][this.curTrkNum].pre_status;
}
public function set status(param_status:String):Void {
this.TrackInfo[this.curFolNum][this.curTrkNum].pre_status = param_status;
}
public function get type():String {
return this.TrackInfo[this.curFolNum][this.curTrkNum].pre_type;
}
public function get totalFolder():Number {
return this.pre_totalFolder;
}
public function get totalFiles():Number {
return this.pre_totalFiles;
}
public function get trkInFolder():Number {
return this.pre_trkInFolder[this.curFolNum];
}
}
In .fla,
firstPlaylist = new myPlaylist(“playlist.xml”);
[COLOR=“Blue”]-----------------------------------------
EDITED:
firstPlaylist.loading();
-----------------------------------------[/COLOR]
well, I got undefined array. Someting wrong with TrackInfo array. Anyone knows why. Can advise any similiar solution? I need to store all the track info in an array form, so that I won’t recall the xml each time.