Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как применить преобразования или tween к матрице клипа для BitmapData? (http://www.flasher.ru/forum/showthread.php?t=211989)

zCHESNOKz 21.12.2015 22:38

Как применить преобразования или tween к матрице клипа для BitmapData?
 
[тема закрыта]

Как применить преобразования или tween к матрице клипа если отрисовка в BitmapData происходит каждый кадр?
Код AS3:

function EnterFrameL(event:Event):void
{
  clip_BitmapData.draw(clip, clip_Matrix, null, null, null, true);
}

Если делать как обычно или даже
TweenMax.to(clip, 10, {transformMatrix:{rotation :15}});
Код AS3:

function EnterFrameL(event:Event):void
{
  clip.rotation ++;
  clip_BitmapData.draw(clip, clip_Matrix, null, null, null, true);
}

То каждый кадр свойство rotation клипа прибавляется к текущему свойству rotation и он начитает набирать обороты как бешеный.

Если так, то пропадает возможность применять tween.
Код AS3:

function EnterFrameL(event:Event):void
{
  clip.rotation = 1;
  clip_BitmapData.draw(clip, clip_Matrix, null, null, null, true);
}

--- --- --- --- ---

#Решено!
Работаем с трансформациям клипа как обычно. Даже можем применить tween. Далее задаем нашей матрице обект Matrix самого клипа.

Код AS3:

clip.rotation++;
clip.scale++;
 
clip_Matrix = clip.transform.matrix;


faraday 21.12.2015 23:05

в чем именно заключается задача? вращать клип? тогда зачем отрисовка в битмап? матрицу да, вращать не получится. анимируйте отдельно параметр вращения. и каждый кадр резетьте матрицу с ним.

zCHESNOKz 21.12.2015 23:22

Цитата:

Сообщение от faraday (Сообщение 1189852)
в чем именно заключается задача? вращать клип? тогда зачем отрисовка в битмап?

Задача в работе с трансформациями клипа который отрисовывается в BitmapData каждый кадр. А чего нельзя вращать клип если я его русую потом в BitmapData?


Цитата:

Сообщение от faraday (Сообщение 1189852)
матрицу да, вращать не получится.

Код AS3:

var angle:int = 2;
clip_Matrix.rotate( (Math.PI * angle) / 180 ); // вращение матрицы

Цитата:

Сообщение от faraday (Сообщение 1189852)
анимируйте отдельно параметр вращения. и каждый кадр резетьте матрицу с ним.

я вроде бы написал, что так не работает

Код AS3:

 
function EnterFrameL(event:Event):void
{
  clip.rotation ++;
  clip_BitmapData.draw(clip, clip_Matrix, null, null, null, true);
}

Добавлено через 7 минут


Часовой пояс GMT +4, время: 19:41.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.