AS3 вертикальный градиент неправильный, когда большой - PullRequest
3 голосов
/ 29 марта 2011

Это, кажется, очень прямолинейная вещь, и есть множество учебников по этому вопросу. Никто из них не помогает мне понять это правильно, и я не могу на всю жизнь понять, что случилось.

Я пытаюсь создать простой графический компонент Flash AS3 с вертикальным градиентом. Я создаю спрайт и рисую градиент с помощью 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 ]

2 голосов
/ 28 июня 2011

Решением было бы перевести Матрицу в Y на высоту коробки, это глупо работать в FP9, работало у меня нормально без этого, имел инкубатор и выглядел плохо, вернулся к 10.3 снова плохо ... мог будь то, что теперь матрица вращается по центру или что-то, что сейчас нужно для перевода.

0 голосов
/ 15 февраля 2013

Просто чтобы подтвердить, это была проблема с проигрывателем Flash.

0 голосов
/ 30 марта 2011

Без тестирования вашего кода может показаться, что вы описываете эту проблему, и Марио Клингеманн имеет решение (конечно).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...