How to create a vertical color gradient (or any other angle besides a flat horizontal gradient)
actionscript-3, draw, flash, gradient, rotation
Solution
This line of code sets the rotation value back to zero:
matr.createGradientBox(200, 200, 0, 0, 1);
If you look at the parameters accepted by the function you'll see that the third parameter is rotation. So, try the following:
matr.createGradientBox(200, 200, Math.PI/9, 0, 1);
Also, is there any reason you are translating the y value by 1 pixel?
Hope this helps. Good luck!
Problem
Hey everyone, my first time trying to draw a multi-color gradient in actionscript 3. So I got this code from the help docs, but I can't seem to get a vertical gradient, whatever formula or number I use for rotate, it stays stuck on the default horizontal gradient :( My Code: You can see in the traces the rotation code I tried... ``` package { import flash.display.DisplayObject; import flash.display.GradientType; import flash.display.SpreadMethod; import flash.display.MovieClip; import flash.display.Graphics; import flash.display.Sprite; import flash.display.Shape; import flash.geom.Matrix; import flash.events.*; public class MyGradient extends MovieClip { private var colorHolder:MovieClip = new MovieClip(); private var colorGrad:MovieClip = new MovieClip(); private var fillType:String = GradientType.LINEAR; private var colors:Array = [0xFF0000, 0x4F8EEC]; private var alphas:Array = [1, 1]; private var ratios:Array = [0x00, 0xFF]; private var matr:Matrix = new Matrix(); private var spreadMethod:String = SpreadMethod.PAD; public function MyGradient():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init():void { colorHolder = new MovieClip(); colorGrad = new MovieClip(); //matr.rotate(30*Math.PI/180); //matr.rotate(45); //matr.rotate(90); //matr.rotate(Math.PI/90); matr.rotate(Math.PI/9); matr.createGradientBox(200, 200, 0, 0, 1); colorGrad.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod); colorGrad.graphics.drawRect(0,0,200,200); colorHolder.addChild(colorGrad); addChild(colorHolder); } } } ``` Updated Fix by Heavily involved: ``` matr.createGradientBox(200, 200, Math.PI/2, 0, 0); ```