Actionscript - объединение ресурсов AS2 в один SWF - PullRequest
0 голосов
/ 13 октября 2008

У меня есть флеш-проект, который я пытаюсь экспортировать как один SWF. Есть основной SWF-файл, который загружает около 6 других SWF-файлов, и основной, и дочерний SWF-файлы ссылаются на другие внешние ресурсы (изображения, звуки и т. Д.). Я хотел бы упаковать все в один файл .swf, чтобы мне не приходилось совмещать другие ресурсы с .swf.

Все кодирование выполняется на временной шкале, но ресурсы не были импортированы в среду Flash Authoring, и у меня нет времени делать это сейчас (слишком много ссылок на них везде). Я надеюсь, что есть только одна опция, которая мне не хватает, которая разрешает такого рода пакетный экспорт, но я не нашел ничего подобного.

У меня нет доступа к Flex или mxmlc (и поскольку AS основан на временной шкале, они не обязательно помогут мне). Есть мысли?

Спасибо!

PS ... если нет никакого способа сделать именно то, что я говорю, я мог бы иметь дело со всеми активами в папке "assets" или чем-то в этом роде, так что я бы просто возился с main.swf и папка активов. Проблема здесь в том, что все ссылки на ресурсы предполагают, что они находятся в той же папке, что и файл main.swf, поэтому все предполагается локальным ... есть ли способ изменить область действия всех внешних ссылок во Flash (так, например, все локальные ссылки в коде фактически ищутся в / assets)?

Ответы [ 3 ]

2 голосов
/ 12 сентября 2009

Вы можете иметь возможность декомпилировать ваши SWF-файлы в XML с помощью swfmill / mtasc и использовать необычный XSLT для их рекомбинации и повторной компиляции с помощью swfmill / mtasc.

Если это не сработает, и если вы используете MovieClip.loadMovie или MovieClipLoader.loadMovie, вы можете перегрузить их методы и перехватить URL:

var realLoadMovie:Function = MovieClip.prototype.loadMovie;

MovieClip.prototype.loadMovie = function(url:String, method:String) {
    return realLoadMovie("assets/" + url, method);
}

var test:MovieClip = createEmptyMovieClip("testclip", getNextHighestDepth());
test.loadMovie("test.swf");

Вам потребуется выполнить дополнительный анализ строки, если URL-адреса имеют префикс типа ресурса, например file: //

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

Существует базовый параметр, который вы можете добавить при встраивании SWF-файла, например, выравнивание, масштабирование и т. Д. Если задано значение base, все относительные URL-адреса будут иметь префикс с указанным вами путем (ну, почти все; видео и ссылки на файл). объекты, являющиеся исключением здесь). Кроме этого, я бы пошел с решением Nikaji.

0 голосов
/ 13 октября 2008

Привет Джастин,

Звучит так, будто вам нужно изучить общие библиотеки. Проверить:

http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14767

...