Возможно ли в Flash CS4 "Экспортировать фильм" как последовательность PNG для фильмов с анимацией ActionScript?

Мне было интересно, есть ли способ использовать "Экспорт фильма" как "Последовательность PNG" для работы с фильмами, где объекты анимированы с помощью ActionScript. Подобный экспорт работает просто отлично для обычной анимации, но не работает для моего текущего проекта. По сути, я создаю изображения с использованием математики и хочу экспортировать результат в виде png для использования в других программах, таких как фотошоп; но так как изображения создаются с помощью ActionScript, экспорт просто показывает пустое изображение. Неужели я просто сделал снимок экрана с результатом и утомительно удалил все области, которые должны быть прозрачными, с помощью инструмента палочки? Кто-нибудь, пожалуйста, скажите мне, что есть лучший способ; Спасибо!

5 ответов

Решение

Начиная с Flash CS3 вы можете быстро экспортировать анимацию / фигуры ActionScript.

  1. Перейдите в Файл> Экспорт фильма> Quicktime
  2. В настройках быстрого экспорта выберите " По истечении времени", а не " Когда достигнут последний кадр".
  3. Отметьте Игнорировать цвет сцены (создать альфа-канал).

Вы должны иметь возможность импортировать фильм Quicktime в Photoshop Extended, который с версии CS3 имеет временную шкалу (" Окно"> "Анимация"). В CS4 есть рабочая область видео, которая должна помочь.

Это кажется самым простым методом для меня.

Если вы хотите придерживаться большего количества кода, вы можете попробовать SimpleFLVWriter Ли Феларки (хотя он немного устарел, поэтому сначала протестируйте) или превратить ваш SWF-файл в приложение AIR и использовать PNGE-кодер из Adobe AS3CoreLib.

Не могли бы вы опубликовать свое видео на Vimeo и поделиться ссылкой, пожалуйста (я хочу видеть ^_^)?

Гудлак, Джордж

Только что выпустили приложение AIR для экспорта SWF-файла в последовательность PNG: http://swfrenderer.kurst.co.uk/ - надеюсь, это поможет...

Насколько я знаю, при экспорте мувиклипа не будет запущен скрипт действий, он будет выводить только все кадры и их (статический) контент.

Я действительно не знаю, можно ли это сделать, и ваше решение для скриншота кажется единственным...

Используйте класс Socket ActionScript. Сделайте снимок сцены (используя класс BitmapData) и отправьте его другому скрипту, работающему на вашем компьютере, через сокет, в котором сохранено изображение. Мне пришлось что-то вроде этого, используя Python, и он работал отлично. Для анимации вы можете не получить лучшую частоту кадров. Но это должно быть хорошо, пока анимация не зависит от времени.

Пример того, как вы это сделаете (не проверено):

var sock:Socket = new Socket(yourIP, somePort);
var drawRect:Rectangle = new Rectangle(0, 0, 550, 400);
var bmp:BitmapData = new BitmapData(drawRect.width, drawRect.height, true, 0x00000000);
bmp.draw(stage, null, null, null, drawRect);
var pixels:ByteArray = bmp.getPixels(drawRect);
for each (var pixel in pixels) {
    sock.writeUnsignedInt(pixel);
}

Обратите внимание, что вам может понадобиться поместить последний кусок в событие "подключения". Также обратите внимание, что я все еще перехожу на AS3, поэтому некоторые из них могут быть устаревшими.

Вот бесплатный инструмент для использования, очень хороший. http://swfrenderer.kurst.co.uk/

Он может конвертировать любой SWF в PNG последовательность. ПРЕИМУЩЕСТВА:

  1. "Быстрый метод" имеет проблему, что по умолчанию применяется "Несколько" с темным фоном.
  2. Вам не нужно иметь дело с внутренними файлами, такими как.mov.
Другие вопросы по тегам