-
[SOLVED]Loading External Variables -> String Variables
Hey all, I've got a problem with importing external variables, and turning them into strings. Whenever I export, it gives me this error:
TypeError: Error #1010: A term is undefined and has no properties.
at EnergiMusicSig_fla::MainTimeline/frame1()
The code is pretty self explanetory, ask if you need more info:
The code for importing and turning into strings:
Code:
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.load(new URLRequest("track_var.txt"));
var track1_infoStr:String = new String(loader.data.track1_info);
var track2_infoStr:String = new String(loader.data.track2_info);
var track3_infoStr:String = new String(loader.data.track3_info);
var track4_infoStr:String = new String(loader.data.track4_info);
var track5_infoStr:String = new String(loader.data.track5_info);
The text file containing variables: (no spaces)
Code:
track1_info=PendulumMasochistNoisiaRmX&track2_info=TinchyStryderFeatNDubz&track3_info=Track3SongName&track4_info=Track4SongName&track5_info=Track5SongName
Thanks for any help!
Last edited by raven3962; 06-15-2009 at 12:27 PM.
-
Loaders are asynchronous. Your code is attempting to access loader.data before it's defined.
You need to put the track initialization code inside an event handler for loader's COMPLETE event.
-
I see, I've done that, but now flash is giving me "Undefined Property" errors because it's trying to use those strings too early. I think.
The code is messy, I know, but here's the full frames code for you to have a butchers:
Code:
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, loading);
loader.load(new URLRequest("track_var.txt"));
function loading (event:Event):void {
var track1_infoStr:String = new String(loader.data.track1_info);
var track2_infoStr:String = new String(loader.data.track2_info);
var track3_infoStr:String = new String(loader.data.track3_info);
var track4_infoStr:String = new String(loader.data.track4_info);
var track5_infoStr:String = new String(loader.data.track5_info);
}
text_holder.text_animator.track_info_text.text = "Please Press Play";
var trackPlay:Number = 1;
playbtn.addEventListener (MouseEvent.MOUSE_OVER, play_over);
stopbtn.addEventListener (MouseEvent.MOUSE_OVER, stop_over);
fwdbtn.addEventListener (MouseEvent.MOUSE_OVER, fwd_over);
bckbtn.addEventListener (MouseEvent.MOUSE_OVER, bck_over);
credit.addEventListener (MouseEvent.MOUSE_OVER, cred_over);
function play_over (e:MouseEvent):void {
playbtn.gotoAndStop (5);
mouse_bubble.gotoAndStop (5);
}
function stop_over (e:MouseEvent):void {
stopbtn.gotoAndStop (5);
mouse_bubble.gotoAndStop (10);
}
function fwd_over (e:MouseEvent):void {
fwdbtn.gotoAndStop (5);
mouse_bubble.gotoAndStop (15);
}
function bck_over (e:MouseEvent):void {
bckbtn.gotoAndStop (5);
mouse_bubble.gotoAndStop (20);
}
function cred_over (e:MouseEvent):void {
mouse_bubble.gotoAndStop (25);
}
playbtn.addEventListener (MouseEvent.MOUSE_OUT, play_out);
stopbtn.addEventListener (MouseEvent.MOUSE_OUT, stop_out);
fwdbtn.addEventListener (MouseEvent.MOUSE_OUT, fwd_out);
bckbtn.addEventListener (MouseEvent.MOUSE_OUT, bck_out);
credit.addEventListener (MouseEvent.MOUSE_OUT, cred_out);
function play_out (e:MouseEvent):void {
playbtn.gotoAndStop (1);
mouse_bubble.gotoAndStop (1);
}
function stop_out (e:MouseEvent):void {
stopbtn.gotoAndStop (1);
mouse_bubble.gotoAndStop (1);
}
function fwd_out (e:MouseEvent):void {
fwdbtn.gotoAndStop (1);
mouse_bubble.gotoAndStop (1);
}
function bck_out (e:MouseEvent):void {
bckbtn.gotoAndStop (1);
mouse_bubble.gotoAndStop (1);
}
function cred_out (e:MouseEvent):void {
mouse_bubble.gotoAndStop (1);
}
playbtn.addEventListener (MouseEvent.MOUSE_UP, play_start);
stopbtn.addEventListener (MouseEvent.MOUSE_UP, stop_stop);
fwdbtn.addEventListener (MouseEvent.MOUSE_UP, fwd_press);
bckbtn.addEventListener (MouseEvent.MOUSE_UP, bck_press);
function play_start (e:MouseEvent):void {
playbtn.removeEventListener (MouseEvent.MOUSE_UP, play_start);
if (trackPlay == 1) {
var track1_s:Sound = new Sound(new URLRequest("track1.mp3"));
text_holder.text_animator.track_info_text.text = track1_infoStr;
track1_s.play (0, 5);
} else if (trackPlay == 2) {
var track2_s:Sound = new Sound(new URLRequest("track2.mp3"));
text_holder.text_animator.track_info_text.text = track2_infoStr;
track2_s.play (0, 5);
} else if (trackPlay == 3) {
var track3_s:Sound = new Sound(new URLRequest("track3.mp3"));
text_holder.text_animator.track_info_text.text = track3_infoStr;
track3_s.play (0, 5);
} else if (trackPlay == 4) {
var track4_s:Sound = new Sound(new URLRequest("track4.mp3"));
text_holder.text_animator.track_info_text.text = track4_infoStr;
track4_s.play (0, 5);
} else if (trackPlay == 5) {
var track5_s:Sound = new Sound(new URLRequest("track5.mp3"));
text_holder.text_animator.track_info_text.text = track5_infoStr;
track5_s.play (0, 5);
}
}
function stop_stop (e:MouseEvent):void {
playbtn.addEventListener (MouseEvent.MOUSE_UP, play_start);
SoundMixer.stopAll ();
}
function fwd_press (e:MouseEvent):void {
if (trackPlay <= 4) {
trackPlay += 1;
SoundMixer.stopAll ();
} else if (trackPlay == 5) {
}
}
function bck_press (e:MouseEvent):void {
if (trackPlay>=2) {
trackPlay-=1;
SoundMixer.stopAll ();
} else if (trackPlay == 1) {
}
}
-
Now it's giving you that "undefined" error because your trackX_infoStr variables are local to the loading function. Declare them outside.
Code:
var track1_infoStr:String;
var track2_infoStr:String;
var track3_infoStr:String;
var track4_infoStr:String;
var track5_infoStr:String;
function loading (event:Event):void {
track1_infoStr = new String(loader.data.track1_info);
track2_infoStr = new String(loader.data.track2_info);
track3_infoStr = new String(loader.data.track3_info);
track4_infoStr = new String(loader.data.track4_info);
track5_infoStr = new String(loader.data.track5_info);
}
Technically, you shouldn't have to do "new String", but it should also be harmless.
-
You sir, are a leg-end. Thanks everso much for the speedy help! All works fine now =D
Have a beer =P
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|