2011-02-08 3 views
0

У меня есть много базовых образов, которые мне нужно объединить, чтобы построить более крупные изображения, чтобы нарисовать объекты Sprite. Я понимаю, что метод beginBitmapFill() класса Graphics отображает растровое изображение на графическом объекте Sprite. Поэтому я считаю, что мне нужно манипулировать объектом BitmapData, добавляя базовые изображения для создания составного изображения, которое затем можно нарисовать на моем Sprite.Рисование нескольких растровых изображений на один спрайт в разных местах

Мой вопрос: есть ли какой-либо чистый и относительно свободный способ сделать это? Есть ли способ рисовать растровые изображения в определенных местах в графическом контексте Sprites? Не могли бы вы скопировать объект Graphics на другой в определенных координатах и ​​построить его таким образом?

ответ

2

Насколько велики эти большие изображения, которые вы намерены построить? Flash 10 ограничивается созданием растрового изображения 8191x8191px (Flash 9 ограничивается 2880x2880px). Вы можете узнать больше об этом в docs.

Предполагая, что вы хорошо разбираетесь в размерах вашего большого изображения Я бы рекомендовал вам воспользоваться первым подходом, о котором вы упомянули: скопируйте данные пикселя из меньших растровых изображений в один более крупный растровый рисунок и затем нарисуйте его в свой объект Graphics Sprite.

Я бы сделал это, сначала создав новый объект BitmapData на большом размере, а затем перейдя по каждому из меньших изображений и используя BitmapData.copyPixels(), чтобы скопировать пиксели из каждой маленькой растровой карты в большую. После создания большого изображения вы можете использовать Graphics.beginBitmapFill() и Graphics.drawRect() для рисования больших битмапдатов в Sprite.

Причина перехода этого маршрута заключается в том, что BitmapData.copyPixels() будет быстрее, чем Graphics.beginBitmapFill() и Graphics.drawRect(). Это также намного более чистый вид, так как вам нужно будет начинать beginBitmapFill() для каждого нового растрового изображения, если вы пошли именно так.

Смежные вопросы