#actionscript-3 #apache-flex #actionscript #air #flex4
#actionscript-3 #apache-flex #actionscript #air #flex4
Вопрос:
У меня есть приложение AIR, над которым я работаю, в котором я хотел бы в основном получить растровое изображение того, что происходит в отдельном окне spark. Вариант использования — это масштабированный предварительный просмотр окна spark, которое, скорее всего, будет отображаться на проекторе на главном дисплее. Я хочу вставить растровое изображение в изображение spark в качестве источника. Поиск в Google, похоже, мало что показывает, или я просто не знаю, какие термины использовать в Google. Кто-нибудь может указать мне правильное направление? У кого-нибудь есть лучший способ добиться этого?
Спасибо!
Комментарии:
1. Вы хотите сделать скриншот окна?
Ответ №1:
Если вы хотите создать растровое изображение какого-либо DisplayObject, будь то целое окно (этап) или просто спрайт, вам следует использовать метод BitmapData draw() .
Следующий код сделает «снимок экрана» всей сцены, создаст его растровое изображение и добавит его в масштабе к верхнему левому углу:
var bd:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
bd.draw(stage);
var bitmap:Bitmap = new Bitmap(bd);
bitmap.width = 300;
bitmap.scaleY = bitmap.scaleX;
addChild(bitmap);
Вам было бы полезно прочитать больше о Bitmap и BitmapData, чтобы использовать такие функции, как:
- Привязка пикселей
- Сглаживание
- Прозрачность
и другие. Например, сглаживание — это то, что позволяет улучшить изображение при масштабировании, но оно считается фильтром и может снизить производительность. Вот почему было бы лучше применять сглаживание к bitmapdata при рисовании (рисование масштабированного изображения выполняется с помощью матрицы), а не на растровом изображении; но только если вы не планируете масштабировать изображение во время выполнения.
Надеюсь, это ответ на ваш вопрос!
Комментарии:
1. Да, это именно то, что мне было нужно! Спасибо!