AttachMovie in as3

Hi,

I am trying to convert an as2 script to as3. Having never dabbled in as2 i am having trouble with the attachMovie and how to convert this to as3. I know it should be addChild but it is the extra parameters that are confusing me.

Can anyone help? The as2 code is below.

Thanks
for (i=0; i<snowflakes; i++) {
		
t = attachMovie("snow", "snow"+i, i);
 
}

Open in new window

HulfyAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

asaivanCommented:
If the name of the movieclip is "snow" then:

for (i=0; i<snowflakes; i++)
{
 
this.addChild(new snow())              
 
}

The extra parameters in AS2 are indicating that the name of the movieclip is "snow" (1st arg), the instance name should be "snow0", "snow1", etc. (2nd arg), and the level should be one higher than the last one (3rd arg).

In AS3 you don't have to worry about levels anymore.  As far as using instance names goes for this type of operation, I've often found it easier to put "snow" into an array, and then just manipulate the index of the array if need be, not worrying about assigning a unique instance name to each new movieclip instance e.g.:
var snowArray:Array = new Array();
 
for (i=0; i<snowflakes; i++) 
{
   snowArray.push( new snow() );
   this.addChild( snowArray[i] );            
 
}

Open in new window

0
HulfyAuthor Commented:
this is the original script, it is the looping and adding of movieclips that I cannot get.


Thanks,

H
init = function () {
	width = 300;
	// pixels 
	height = 200;
	// pixels 
	max_snowsize = 10;
	// pixels 
	snowflakes = 50;
	// quantity 
	for (i=0; i<snowflakes; i++) {
		t = attachMovie("snow", "snow"+i, i);
		t._alpha = 20+Math.random()*60;
		t._x = -(width/2)+Math.random()*(1.5*width);
		t._y = -(height/2)+Math.random()*(1.5*height);
		t._xscale = t._yscale=50+Math.random()*(max_snowsize*10);
		t.k = 1+Math.random()*2;
		t.wind = -1.5+Math.random()*(1.4*3);
		t.onEnterFrame = mover;
	}
};
mover = function() {
	this._y += this.k;
	this._x += this.wind;
	if (this._y>height+10) {
		this._y = -20;
	}
	if (this._x>width+20) {
		this._x = -(width/2)+Math.random()*(1.5*width);
		this._y = -20;
	} else if (this._x<-20) {
		this._x = -(width/2)+Math.random()*(1.5*width);
		this._y = -20;
	}
}
init();

Open in new window

0
asaivanCommented:
It's something like this:



for (i=0; i<snowflakes; i++) 
{
   snowArray.push( new snow() );
   this.addChild( snowArray[i] );   
   snowArray[i].alpha = 20+Math.random()*60;
   ...
   snowArray[i].addEventListener(Event.ENTER_FRAME, mover);
 
}
 
private function mover (event:Event):void
{
    this.y += this.k;
   ...
}

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

asaivanCommented:
The ENTER_FRAME event may not work right in this case though.  I can't remember the different scopes of 'this' in AS2.
0
blue-genieCommented:
hulfy, you're duplicating posts.
see  your other post.
0
asaivanCommented:
I would like to have some recompense for the time spent on this question.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Adobe Flash

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.