AS3垂直渐变大时不正确

时间:2011-03-29 16:57:57

标签: actionscript-3 gradient

这似乎是一件非常直接的事情,有很多关于这个主题的教程。尽管如此,他们都没有帮助我做到这一点,而且我不能为我的生活弄清楚什么是错的。

我正在尝试创建一个具有垂直渐变的简单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度填充不起作用?

感谢您的帮助,我真的不知道这是什么错误

3 个答案:

答案 0 :(得分:2)

解决方案是将Y中的矩阵转换为盒子的高度,它在FP9中的傻工作对我来说没有那么好,孵化器构建并看起来很糟糕,再次回到10.3坏了。现在是由中心旋转的矩阵或现在需要翻译的东西。

答案 1 :(得分:0)

如果不测试您的代码,您似乎可能正在描述Mario Klingemann(当然)有解决方案的问题。

http://www.quasimondo.com/archives/000689.php

答案 2 :(得分:0)

要确认一下,这是一个Flash播放器问题。