Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 239
  • Last Modified:

In Flash MX2004, how do I turn this linear gradient box into a radial gradient circle?

How do I modify this action script so that it produces a circle with a concentric radial gradient, instead of a box with a linear gradient?

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

Open in new window

0
gabrielPennyback
Asked:
gabrielPennyback
  • 4
  • 2
1 Solution
 
Aneesh ChopraCommented:
Just change "linear" to "radial"

you can also play with "ratios" array, to change the size of gradient circle.
for example, try replacing existing "radios" array with following:
var ratios = [0, 50, 100, 200];

here is the updated code:
import flash.geom.*;
//
var mc:MovieClip = this.createEmptyMovieClip("grad", 1);
 
var colors = [0x79986B, 0xDCE0B6, 0x79986B, 0x000000];
var alphas = [100, 100, 100, 100];
var ratios = [0, 15, 30, 45];
 
var matrix = {matrixType:"box", x:100, y:100, w:200, h:200, r:(45/180)*Math.PI};
mc.beginGradientFill("radial",colors,alphas,ratios,matrix);
mc.moveTo(100,100);
mc.lineTo(100,300);
mc.lineTo(300,300);
mc.lineTo(300,100);
mc.lineTo(100,100);
mc.endFill();

Open in new window

0
 
gabrielPennybackAuthor Commented:
Hi aneesh,

Yes that was the first thing i tried, but I still get a 200x200 black box around the much smaller circle gradient.bIs "box" an ActionScript defined term?  I thought maybe "circle" would get rid of the black box, but that produces no shape at all.

John
0
 
Aneesh ChopraCommented:
as I already mentioned

"
you can also play with "ratios" array, to change the size of gradient circle.
for example, try replacing existing "radios" array with following:
var ratios = [0, 50, 100, 200];
"

ratios defines the area each gradient color will occupy

ratio value must be in between 0 to 255

to get rid of black color you can set last color alpha to 0

just try follwoing code and see the output:
import flash.geom.*;
//
var mc:MovieClip = this.createEmptyMovieClip("grad", 1);
 
var colors = [0x79986B, 0xDCE0B6, 0x79986B, 0x000000];
var alphas = [100, 100, 100, 0];
var ratios = [0, 50, 150, 200];
 
var matrix = {matrixType:"box", x:100, y:100, w:200, h:200, r:(45/180)*Math.PI};
mc.beginGradientFill("radial",colors,alphas,ratios,matrix);
mc.moveTo(100,100);
mc.lineTo(100,300);
mc.lineTo(300,300);
mc.lineTo(300,100);
mc.lineTo(100,100);
mc.endFill();

Open in new window

0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
Aneesh ChopraCommented:
another point,
"ratios" Array value should be set in incremental to each previous element of the array
and value should be inbetween 0 to 255

0
 
gabrielPennybackAuthor Commented:
Thanks, aneesh. The main key was making that last alpha zero. Thanks for the continuing education.

Please take a look at this related quesion. If you have the time to post an answer now that would be awesome.

http://www.experts-exchange.com/Software/Photos_Graphics/Web_Graphics/Macromedia_Flash/Q_22990904.html
0
 
Aneesh ChopraCommented:
welcome,
I just say the linked question and it has already been answered.

secondly,
if you are satisfy with my comment on this question.
Please close this question by accepting the appropriate comment


0

Featured Post

Important Lessons on Recovering from Petya

In their most recent webinar, Skyport Systems explores ways to isolate and protect critical databases to keep the core of your company safe from harm.

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now