Можно ли сделать снимок экрана и сохранить изображение в ActionScript 3? - PullRequest
1 голос
/ 12 июня 2010

Мне нужно захватить то, что в данный момент отображается в моем приложении, и сохранить его как изображение. Является ли приложение флэш-памяти запущенным локально, без apache, просто приложение флэш-памяти с AS3, возможно ли это?

Я видел многоРешения гуглят, но всем нужен веб-сервер, и это приложение работает как настольное приложение.

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 12 июня 2010

Да, это возможно.

Нарисуйте некоторый экранный объект в BitmapData (например, на сцене) и обрежьте его, если необходимо (второй параметр BitmapData :: draw поможет вам здесь).

Затем преобразуйте необработанные данные пикселей в JPEG или PNG, используя некоторый кодер. Я уверен, что до этого момента эти уроки объяснят вам, как это сделать.

Теперь третий шаг отличается, но достаточно прост. Вместо отправки данных изображения в сценарий на стороне сервера используйте объект FileReference. Начиная с Flash Player 10, он имеет метод save , который предлагает пользователю сохранить файл локально.

Поскольку это настольное приложение, вы также можете сделать его приложением AIR. Это даст более прямой доступ к файловой системе и другим функциям, если они вам понадобятся.

0 голосов
/ 18 апреля 2011

Существует вспомогательный класс, который может получить текущее визуальное состояние графика DisplayObjects (фактически, все, что реализует IBitmapRenderer) и сохраняет его в виде растровых данных.Этот класс mx.graphics.ImageSnapshot .

0 голосов
/ 15 июня 2010

После нескольких часов исследований это кажется невозможным для некоторых ограничений безопасности флэш-плеера. Для всех методов необходим некоторый серверный скрипт. Чем ближе к тому, что мне нужно, было это но ему нужен apache или аналогичный, так что в автономном флеш-приложении это сделать невозможно

...