Вход

Просмотр полной версии : Skew на AS2 для динамического объекта


russkii
26.07.2008, 17:46
Многоуважаемые FLSHER-ы форума! Помогите мне пожалуйста произвести skew над динамическим объектом. Задача следущая загрузить рис. во flash и сделать skew над ним и это все динамно.
В примере разкомментируйте строку и увидете что skew(silin-а) работает над простым обьектом...
Я так понял мне нужно динамный рис. загнать в матрицу и над ней производить действия...

Alex_beginner
26.07.2008, 18:04
russkii! Используйте объект класса Matrix для скьювинга.

Задача следущая загрузить рис. во flash и сделать skew над ним и это все динамно.

Вообще, не совсем понятно, что значит "динамно". Поясните.

russkii
26.07.2008, 19:34
По поводу класса Matrix я не знаю как туда впихнуть наш подгружаемый png. Мне для skew-a необходимо этот подгружаемый png запихнуть в BitmapData я делаю так:

var pic:BitmapData = new BitmapData(100, 100, true, 0x000000);
pic.draw(stena);

где "stena" - созданный AS мувиклип и в него загружен png

Вообще, не совсем понятно, что значит "динамно". Поясните.
Ну т.е. как я и описал "динамно" - динамически, подгрузка картинки идет уже в готовом swf...

Лучше посмотреть прикреплненный файл

russkii
26.07.2008, 19:44
САМ SILIN ответил на мой вопрос:
привет,
для любого мувика есть доступ к матрице трансформаций
у матрицы за skew (по x и y) отвечают свойства c и b
т.е. редактируя их программно достигаем любого skew, примерно так как
при Free Transform в редакторе..

var mc:MovieClip
var mtrx:Matrix = mc.transform.matrix;
//mtrx.b = 0.5;
mtrx.c = 0.5;
mc.transform.matrix = mtrx;

russkii! Используйте объект класса Matrix для скьювинга.
Теперь я понял о чем ты говоришь!!!
СПАСИБО ЗА ПОМОЩЬ, ДОБРЫЕ ФЛЭШЕРЫ!!!

Alex_beginner
26.07.2008, 19:47
var pic:BitmapData = new BitmapData(100, 100, true, 0x000000);
pic.draw(stena);

- :

1. Вы не сможете этим отрендерить мувиклип с подгруженным изображением, обязательно в методе draw класса BitmapData необходимо задавать параметр matrix, хотя бы матрицу идентичности, т.е.:


pic.draw(stena, new Matrix())

остальные параметры можно игнорировать.

С помощью этого параметра также можно произвести skew'винг изображения для этого Вам необходимо создать матрицу:

var mat_transform:Matrix = new Matrix()

Определить свойства объекта mat_transform - c и b, отвечающие за вертикальный и горизонтальный скьювинг, соответсвенно.
Далее использовать полученную матрицу в методе draw.

var mc:MovieClip
var mtrx:Matrix = mc.transform.matrix;
//mtrx.b = 0.5;
mtrx.c = 0.5;
mc.transform.matrix = mtrx;

Приведенная трансформация обратима для мувиклипов. Для битмапдаты это не обратимо.

russkii
26.07.2008, 21:57
Огромное спасибо Alex_beginner!
Все стало теперь янее ясного!
Пример с bitmap пригодился очень кстати! :drinks:

grozdyVinograda
18.11.2008, 14:01
Всем здрасьте) У меня почему-то пишет что класс Matrix не может быть загружен(
Хотя в классах флэша он есть.....может кто знает в чём косяк?

Kuruki
18.11.2008, 15:44
загружен или найден? Вы его импортировали?

grozdyVinograda
29.11.2008, 17:13
это я тупанул жёстко. забыл импортировать)