Animating Dynamic MovieClips - Page 5
       by kirupa  |  30 August 2006

In the previous page, I provided you with a basic idea of how attachMovie works. Now, let's look at how it applies to our code.


this.attachMovie("blueCircle", "blue"+count, 10000+count, {_x:xPos, _y:yPos, _alpha:10+Math.random()*40, _xscale:scale, _yscale:scale});

Like mentioned earlier, the movie clip we wish to attach to the stage is the blueCircle movie clip. Coincidentally, the Linkage ID value of our blueCircle movie clip is also blueCircle.

this.attachMovie("blueCircle", "blue"+count, 10000+count, {_x:xPos, _y:yPos, _alpha:10+Math.random()*40, _xscale:scale, _yscale:scale});

The second argument specifies the new name of our attached movie clip. I'll be calling the new movie clip blue plus the value of count. The names you will see will be similar to blue0, blue1, blue2, etc.

this.attachMovie("blueCircle", "blue"+count, 10000+count, {_x:xPos, _y:yPos, _alpha:10+Math.random()*40, _xscale:scale, _yscale:scale});

The third argument takes a number that specifies the depth of our attached movie clip on the stage. The most common value used here is the getNextHighestDepth() property associated with a movie clip or a target level such as _root.

In this case, I am creating my own custom depth by picking an arbitrarily large number combined with, again, our count value. I will explain the rationale behind this a bit later.

this.attachMovie("blueCircle", "blue"+count, 10000+count, {_x:xPos, _y:yPos, _alpha:10+Math.random()*40, _xscale:scale, _yscale:scale});

The final argument is the most interesting one, because it allows you to set the initial properties of our movie clip. Notice that the properties are enclosed by the { and } curly braces. Also, the property and its value are assigned using a colon instead of an equals sign such as _x:xPos, _y:yPos, etc.

In the code for this example, I set the _x, _y, _alpha, _xscale, and _yscale properties to the variables I declared earlier. You are not limited to using variables for setting the properties. For the _alpha property, I am using an expression that picks a random alpha value between 10 and 50:

this.attachMovie("blueCircle", "blue"+count, 10000+count, {_x:xPos, _y:yPos, _alpha:10+Math.random()*40, _xscale:scale, _yscale:scale});

In the end, our little blue circles taken from the library, placed at a point where our mouse cursor currently is as defined by  the xPos and yPos variables, and the circles feature random scaling and alpha values thanks to Math.random().

The following screenshot gives you a snapshot of how the animation looks with each circle being a little bit more unique than the preceding circle:

[ notice the random sizes/alphas of the circles generated ]

Let's leave attachMovie and continue on with the code explanation on the next page.

Onwards to the next page!

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8




SUPPORTERS:

kirupa.com's fast and reliable hosting provided by Media Temple.