Korchy (korchy) wrote,
Korchy
korchy

concatenatedmatrix не единичная

Простейший пример, который показывает, что concatenatedmatrix у спрайта, который не имеет parent'а, не является единичной:

package Tmp {
   import flash.display.Sprite;
   public class Tmp extends Sprite {
      private var a:Sprite;
         public function Tmp() {
           a = new Sprite();
           trace(transform.matrix.toString());
           trace(transform.concatenatedMatrix.toString());
           trace(a.transform.matrix.toString());
           trace(a.transform.concatenatedMatrix.toString());
      }
   }
}

(a=1, b=0, c=0, d=1, tx=0, ty=0)
(a=1, b=0, c=0, d=1, tx=0, ty=0)
(a=1, b=0, c=0, d=1, tx=0, ty=0)
(a=5, b=0, c=0, d=5, tx=0, ty=0)

Матрица приобретает нормальное значение про добавлении спрайта в сцену:

package Tmp {
   import flash.display.Sprite;
   public class Tmp extends Sprite {
      private var a:Sprite;
         public function Tmp() {
           a = new Sprite();
           addChild(a);
           trace(transform.matrix.toString());
           trace(transform.concatenatedMatrix.toString());
           trace(a.transform.matrix.toString());
           trace(a.transform.concatenatedMatrix.toString());
      }
   }
}

(a=1, b=0, c=0, d=1, tx=0, ty=0)
(a=1, b=0, c=0, d=1, tx=0, ty=0)
(a=1, b=0, c=0, d=1, tx=0, ty=0)
(a=1, b=0, c=0, d=1, tx=0, ty=0)

Хотя этот момент описан в баг-репорте Adobe, он не является очевидным и способен доставить определенные трудности при отладке.

Поэтому, если в проекте используются трансформации объектов с помощью матричных преобразований, необходимо соблюдать правило: никаких трансформаций до включения спрайта в сцену.
Tags: actionscript 3.0, progr, интерпланети
Subscribe

  • Компьютерное :)

    ... - Теперь нажми Enter. ... - Ну, перевод строки. ... - Ввод! ... - Большая клавиша. ... - Нет, не снизу. ... - Со стрелкой. ... - С одной. ... -…

  • Страдательное :)

    - Что с рукой? - Палиндром. - Чего? - "А роза упала на лапу Азора". Пострадал Азор, пострадала роза, пострадали соседи, разбуженные громкими матюками.

  • Еще вдогонку :)

    - Там лежит. - Там, это где? - Там. Только чуть-чуть не там.

Comments for this post were disabled by the author