Просмотр полной версии : Skew на AS2 для динамического объекта
Многоуважаемые FLSHER-ы форума! Помогите мне пожалуйста произвести skew над динамическим объектом. Задача следущая загрузить рис. во flash и сделать skew над ним и это все динамно.
В примере разкомментируйте строку и увидете что skew(silin-а) работает над простым обьектом...
Я так понял мне нужно динамный рис. загнать в матрицу и над ней производить действия...
Alex_beginner
26.07.2008, 18:04
russkii! Используйте объект класса Matrix для скьювинга.
Задача следущая загрузить рис. во flash и сделать skew над ним и это все динамно.
Вообще, не совсем понятно, что значит "динамно". Поясните.
По поводу класса Matrix я не знаю как туда впихнуть наш подгружаемый png. Мне для skew-a необходимо этот подгружаемый png запихнуть в BitmapData я делаю так:
var pic:BitmapData = new BitmapData(100, 100, true, 0x000000);
pic.draw(stena);
где "stena" - созданный AS мувиклип и в него загружен png
Вообще, не совсем понятно, что значит "динамно". Поясните.
Ну т.е. как я и описал "динамно" - динамически, подгрузка картинки идет уже в готовом swf...
Лучше посмотреть прикреплненный файл
САМ 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;
Приведенная трансформация обратима для мувиклипов. Для битмапдаты это не обратимо.
Огромное спасибо Alex_beginner!
Все стало теперь янее ясного!
Пример с bitmap пригодился очень кстати! :drinks:
grozdyVinograda
18.11.2008, 14:01
Всем здрасьте) У меня почему-то пишет что класс Matrix не может быть загружен(
Хотя в классах флэша он есть.....может кто знает в чём косяк?
загружен или найден? Вы его импортировали?
grozdyVinograda
29.11.2008, 17:13
это я тупанул жёстко. забыл импортировать)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.