这似乎是一件非常直接的事情,有很多关于这个主题的教程。尽管如此,他们都没有帮助我做到这一点,而且我不能为我的生活弄清楚什么是错的。
我正在尝试创建一个具有垂直渐变的简单Flash AS3 GUI组件。我创建了精灵,并使用beginGradientFill和一个90度弧度角的矩阵绘制渐变。如果查看此输出,您会发现它没有创建从黑到白的垂直渐变。
package
{
import flash.display.GradientType;
import flash.display.Shape;
import flash.display.Sprite;
import flash.geom.Matrix;
public class Main extends Sprite
{
public function Main()
{
var theWidth : Number = 800;
var theHeight: Number = 100;
var shape1:Shape = new Shape();
var matrix:Matrix = new Matrix();
matrix.createGradientBox(theWidth , theHeight, Math.PI*0.5, 0, 0);
var colors:Array = [ 0xffffff, 0x000000];
var alphas:Array = [ 1, 1];
var ratios:Array = [ 0, 255];
shape1.graphics.lineStyle(2,0xa1b0b6);
shape1.graphics.beginGradientFill(GradientType.LINEAR,colors, alphas, ratios, matrix);
shape1.graphics.drawRect( 0.0, 0.0, theWidth , theHeight);
shape1.graphics.endFill();
addChild(shape1);
}
}
}
如果我改变
matrix.createGradientBox(800, 100, Math.PI*0.5, 0, 0);
到
matrix.createGradientBox(800, 100, Math.PI, 0, 0);
它工作正常 - 但水平 - 为什么应用90度填充不起作用?
感谢您的帮助,我真的不知道这是什么错误
答案 0 :(得分:2)
解决方案是将Y中的矩阵转换为盒子的高度,它在FP9中的傻工作对我来说没有那么好,孵化器构建并看起来很糟糕,再次回到10.3坏了。现在是由中心旋转的矩阵或现在需要翻译的东西。
答案 1 :(得分:0)
如果不测试您的代码,您似乎可能正在描述Mario Klingemann(当然)有解决方案的问题。
答案 2 :(得分:0)
要确认一下,这是一个Flash播放器问题。