Есть ли какая-нибудь SWF-библиотека, которая может редактировать только один SWF-тег? - PullRequest
2 голосов
/ 23 августа 2011

Я работаю над проектом, и мне нужно открыть файл SWF, изменить содержимое тега SWF , не касаясь других тегов

Я пробовал "библиотеку SwfDotNet", но она не выводит неизвестные теги. Например, если он обнаруживает тег «EXPORTASSETS», он не записывает его в выходной SWF-файл, поскольку библиотека старая и поддерживает версию SWF до 7, а тег новый.

Есть ли библиотеки с такой возможностью?

Ответы [ 2 ]

2 голосов
/ 24 августа 2011

Это можно сделать с помощью SWFWire с использованием AsyncSWFReaderFiltered класса . Например, если вы хотите читать только теги ShowFrame:

var reader:AsyncSWFReaderFiltered = new AsyncSWFReaderFiltered();
reader.includedTags[1] = true;
reader.addEventListener(AsyncSWFReaderEvent.TAG_READ, function(ev:AsyncSWFReaderEvent):void
{
     trace('Done reading tag #'+ev.result.swf.tags.length);
});
reader.read();

Все остальные теги будут отображаться как UnknownTag, которые являются просто контейнерами для ByteArray.

1 голос
/ 23 августа 2011

У меня есть решение для as3 (flex), которое может работать во время выполнения:

  1. Загрузка необходимого SWF-файла как байтового массива через URLLoader,
  2. Разбор swf через https://github.com/claus/as3swf util.
  3. Внесены изменения в теги.
  4. Создайте новый bytearray и загрузите его через общий SWFLoader. Я использовал этот способ для изменения версии SWF во время выполнения.

Также взгляните на эти инструменты для манипулирования содержимым SWF:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...