I am trying to write a script in flash that takes variables ( a list of movies that I wish to be played ) and loads them into the movie.

I don't have much code written for this but here is what I have in the first and only frame:

loadVariablesNum("variables.txt", 0);

loadMovie(var1, 0);

in the variables.txt file I have this:

var1="movie.swf"

I don't get an error when I run the file but I also don't get my movie clip to play either. Also, I tried to use "trace var1;" just to see if my variable is being correctly set, and it returns a syntax error.
I tried substituting the var1 in the actionscript with the actual movie name and the clip plays.

Recommended Answers

All 4 Replies

ok, after reading some more I found that LoadVars is a bit better for what I am trying to do (I hope). It still isn't working, but under "debug" -> "list variables" I can see var1:"movie.swf" which means its at least loading the text file and seeing the string I need.

I can't seem to figure out why it won't play the movie though.

Here is my updated code if anyone can help.

movieData = new LoadVars();
movieData.onLoad = getMovieData;
movieData.load("variables.txt");

function getMovieData()
{
		loadMovie(movieData.var1, 0);
}

Hey there!

You're almost there -- there are just a couple small things that need adjustment in order to get this script up and running.

First, your variable name does not need quotes -- Flash, when it inputs the information, interprets the quotes as part of the variable value that you're passing. So the correct code in your flat file should be:

var1=movie.swf

The second thing is that the targeting in your function is off. The code "loadMovie(movieData.var1, 0);" is pretty much the exact thing as "this.loadMovie(movieData.var1,0);". The problem is that in this situation, "this" refers to your function, not the root movie (which is where I'm assuming you want to load the movie). All you need to do is be more specific as to where you want to load the movie. So this code works:

movieData = new LoadVars();
movieData.onLoad = getMovieData;
movieData.load("variables.txt");

var MAIN_ROOT = this;
function getMovieData()
{
	MAIN_ROOT.loadMovie(movieData.var1);
}

All I did was create a variable "MAIN_ROOT" and make that variable point to the movie clip which houses the function.

Let me know if you have any troubles with the code or any additional questions!

Best,

--eric

PS - For future projects, and particularly if you move on up to AS3, you may want to keep your variables inside an XML document instead of a flat text file. AS3 traverses XML really easily and it's easier to keep track of multiple variables in an XML document (large flat files can get unwieldy very quickly).

That worked! Thanks so much for your help!

Fantastic -- glad to hear it!!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.