|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[+1 06.03.13]
Регистрация: Feb 2007
Сообщений: 174
|
Получение общей BitmapData из нескольких спрайтов.
Подскажите плиз.
В swf-файле есть некоторое количество спрайтов в которых методом graphics создано некоторое изображение. Все спрайты разложены в массиве arrBMP. Требуется составить один объект BitmapData - bmD - который включал бы в себя всю графику отрисованную в спрайтах, и с теми-же координатами. Пробую как-то так: private function poluchBitmapData():void { var bmD:BitmapData = new BitmapData(1600, 1000, true, 0xFFFF00); for (var i:int = 0; i < arrBMP.length; i++) { var sprt:Sprite = arrBMP[i] as Sprite; var bmd2:BitmapData = arrBMP[i] as BitmapData; var rect:Rectangle = new Rectangle(sprt.x, sprt.y, sprt.width, sprt.height); var pt:Point = new Point(sprt.x, sprt.y); bmD.copyPixels(bmd2, rect, pt); } } Опыт работы с классами Bitmap и BitmapData есть, но небольшой. Подскажите плиз, как сделать правильно. |
|
|||||
ВОт это странно выглядит
Так массив arrBMP состоит из спрайтов или битмамдат? Для отрисовки спрайта в битмам есть метод draw Вам нужно отрисовать на одной картинке разные спрайты ? package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BlendMode; import flash.display.Shape; import flash.display.Sprite; import flash.geom.Matrix; import flash.utils.getTimer; [SWF(width="670", height="550", frameRate="31", backgroundColor="#ffffff")] public class Test5 extends Sprite { public function Test5() { super(); drawSapes(); } private function drawSapes():void { var bmd:BitmapData = new BitmapData(360, 400, false, 0xff0000); for (var i:uint = 0; i < 8; i++) { for (var k:uint =0; k < 8; k++) { //создаем графику var shp:Shape = new Shape(); shp.graphics.beginFill(0x0000ff); shp.graphics.drawRoundRect(0, 0, 40, 30, i * k); //Cоздаем матрицу сдвига и отрисовывем клипы сразу на оду и туже bitmapData только в разные позиции var margin:Number = 2; var tx:Number = (shp.width + margin)* i; var ty:Number = (shp.height + margin) * k; var matrix:Matrix = new Matrix(1, 0, 0, 1, tx, ty); bmd.draw(shp, matrix); } } var bitmap:Bitmap = new Bitmap(bmd); addChild(bitmap); } } } http://wonderfl.net/c/kMKT/
__________________
... Последний раз редактировалось Александр Мостовой; 03.04.2013 в 20:47. |
|
|||||
[+1 06.03.13]
Регистрация: Feb 2007
Сообщений: 174
|
Массив состоит из спрайтов в которых есть рисунок. Требуется получить одну BitmapData с общим составным рисунком полученным из всех спрайтов массива. Тема для меня во многом новая, вот я и формулирую вопрос так как представляю.
|
|
|||||
Мой пример это и делает
Вот этот кусок var shp:Shape = new Shape(); shp.graphics.beginFill(0x0000ff); shp.graphics.drawRoundRect(0, 0, 40, 30, i * k);
__________________
... Последний раз редактировалось Александр Мостовой; 03.04.2013 в 20:55. |
Часовой пояс GMT +4, время: 23:18. |
|
« Предыдущая тема | Следующая тема » |
|
|