![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
я знаю как загнать картинку из библиотеки в Bitmap, но загнать MovieClip чето не получается. Подскажите
|
|
|||||
|
Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
|
1. Создаете экземпляр класса вашего MovieClip.
2. Рисуете его на BitmapData методом draw. 3. Создаете экземпляр класса Bitmap(ВАША BitmapData) - получаете DisplayObject. |
|
|||||
|
да про это я знаю. Мне интересно нельзя все это сделать без создания экземпляра?
|
|
|||||
|
Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
|
думаю нет... можно для созданного MovieClip указать свойство cacheAsBitmap = true... если вы используете Bitmap для повышения производительности, то этот вариант тоже хорош, если изображение не поворачивать и не скейлить
|
|
|||||
|
тут еще такая проблема:
клип, к которому я применяю метод draw(), т.е. который я хочу отрисовать, имеет точку регистра снизу в центре. Так вот... когда я применяю метод draw(), то в результате в Bitmap'е ничего не отображается. Но стоит мне переместить точку регистра в левый-верхний угол, как все становится нормально, но такой вариант меня не устраивает. Пробовал в метод draw() передать параметр clipRect, область которого покрывает весь клип, но тоже ничего не происходит. В чем дело? |
|
|||||
|
Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
|
Дело в матрице преобразований:
|
|
|||||
|
че то я не понял эту систему. Я сделал смещение, но все равно Bitmap не отображает ничего, что находится выше или левее точки
|
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.*; //// создаем клип со смещенным центром в правый нижний угол var mc:MovieClip = new MovieClip (); var g:Graphics = mc.graphics; g.beginFill (0xFF0000); g.lineTo(-100,0) g.lineTo(-100,-100) g.lineTo(0,-100) g.lineTo(0,0) g.endFill() this.addChild (mc) mc.x = 200; mc.y = 200; //// создаем обычный битмап var bmpd:BitmapData = new BitmapData (100,100, false, 0x0000FF); bmpd.draw (mc); var bmp:Bitmap = new Bitmap (bmpd); this.addChild (bmp); bmp.x = 250; bmp.y = 100; //// пусто //// создаем битмап с матрицей смещения var bmpd2:BitmapData = new BitmapData (100,100, false, 0x0000FF); var matrix:Matrix = new Matrix (); matrix.translate (100, 100); bmpd2.draw (mc, matrix); var bmp2:Bitmap = new Bitmap (bmpd2); this.addChild (bmp2); bmp2.x = 400; bmp2.y = 100; //// готово |
|
|||||
|
[+4 16.07.08]
Регистрация: Jul 2008
Адрес: Gamburg
Сообщений: 108
|
var m:M= new M(); var bmp:BitmapData = new BitmapData(m.width,m.height,false,0x00FF00); bmp.draw(m,new Matrix(1,0,0,1,m.width/2,m.height/2)) var b:Bitmap = new Bitmap(bmp) b.x=100; b.y=100 addChild(b) iNils - у меня еще проще ![]() Peregrin.ru - просто скопируйте код , только вместо М поставте клас вашего мувика.Последний раз редактировалось Venya2007; 29.07.2008 в 19:20. |
|
|||||
|
У тебя не проще, просто у тебя конкретно под мой пример, а у него общий, с нуля, так сказать ))
Спасибо всем у меня не работало оказывается потому, что я параметры смещения в команде translate() указывал со знаком минус. А щас все работает. Еще раз спасибо |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|