In Flash Mx2004, how do I create more than one shape with Action Script?

The script below will produce one gradient ball 50x50 at x=50, y=50. How do I modify it so that it will simultaneously produce three more  shapes at these locations:
x=50, y=300
x=300, y=50
x=300, y=300

Thanks!
John
import flash.geom.*
//
var mc:MovieClip = this.createEmptyMovieClip("grad", 1);
 
var colors = [0xDCE0B6, 0x000000, 0x000000];
var alphas = [100, 100, 0];
var ratios = [0, 254, 255];
var matrix = {matrixType:"box", x:50, y:50, w:50, h:50, r:(45/180)*Math.PI};
mc.beginGradientFill("radial",colors,alphas,ratios,matrix);
mc.moveTo(50,50);
mc.lineTo(50,100);
mc.lineTo(100,100);
mc.lineTo(100,50);
mc.lineTo(50,50);
mc.endFill();

Open in new window

LVL 1
John CarneyReliability Business Tools Analyst IIAsked:
Who is Participating?
 
Tom RayCommented:
you can use duplicateMovieClip
import flash.geom.*
//
var mc:MovieClip = this.createEmptyMovieClip("grad", 1);
 
var colors = [0xDCE0B6, 0x000000, 0x000000];
var alphas = [100, 100, 0];
var ratios = [0, 254, 255];
var matrix = {matrixType:"box", x:50, y:50, w:50, h:50, r:(45/180)*Math.PI};
mc.beginGradientFill("radial",colors,alphas,ratios,matrix);
mc.moveTo(50,50);
mc.lineTo(50,100);
mc.lineTo(100,100);
mc.lineTo(100,50);
mc.lineTo(50,50);
mc.endFill();
 
//additions
 
duplicateMovieClip(_root.mc, "mc2", 100);
mc2._x = 0;
mc2._y = 250;
 
 
duplicateMovieClip(_root.mc, "mc3", 200);
mc3._x = 250;
mc3._y = 0;
 
 
duplicateMovieClip(_root.mc, "mc4", 300);
mc4._x = 250;
mc4._y = 250;

Open in new window

0
 
CyanBlueCommented:
Or create a function out of that and call that function with different variables...

CyanBlue
function createSphere(__mc:MovieClip, __x:Number, __y:Number, __w:Number, __h:Number)
{
	var colors = [0xDCE0B6, 0x000000, 0x000000];
	var alphas = [100, 100, 0];
	var ratios = [0, 254, 255];
	var matrix = {matrixType:"box", x:__x, y:__y, w:__w, h:__h, r:(45 / 180) * Math.PI};
	
	__mc.beginGradientFill("radial", colors, alphas, ratios, matrix);
	__mc.moveTo(__x, __y);
	__mc.lineTo(__x, __y);
	__mc.lineTo(__x + __w, __y);
	__mc.lineTo(__x + __w, __y + __h);
	__mc.lineTo(__x, __y + __h);
	__mc.endFill();
}
//
var mc1:MovieClip = this.createEmptyMovieClip("grad1", 1);
createSphere(mc1, 50, 300, 50, 50);
//
var mc2:MovieClip = this.createEmptyMovieClip("grad2", 2);
createSphere(mc2, 300, 50, 50, 50);
//
var mc3:MovieClip = this.createEmptyMovieClip("grad3", 3);
createSphere(mc3, 300, 300, 50, 50);

Open in new window

0
 
John CarneyReliability Business Tools Analyst IIAuthor Commented:
Hey, thanks! I'm sorry for being checked out for so long. sibgig's solution worked perfectly right out of the box, so did Cyanblue's, (except for the one missing sphere at 50,50)

The answers were so close in time, and together taught me 2 different ways to explore doing it, I'd like to split up the points woth the majority going to sibgig for getting there first.

Oh and please take a look at my next question which builds on your answers here: http://www.experts-exchange.com/Software/Photos_Graphics/Web_Graphics/Macromedia_Flash/Q_23012179.html

Thanks again!

John
0
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.

All Courses

From novice to tech pro — start learning today.