Добавление вступления в SWF без доступа к FL ИЛИ: различия между верхнего уровня и загруженных SWF - PullRequest
3 голосов
/ 03 февраля 2010

Мне нужно (быстро!) Добавить вступление к существующему флэш-заголовку на унаследованном мной сайте. У меня нет доступа к исходным файлам .fla, поэтому я решил проблему, поместив введение в оболочку swf, загрузив текущий заголовок и добавив его в список отображения на Event.INIT. Все идет нормально. (Кстати, swfs созданы для flash player 9 и используют AS3.)

Проблема, с которой я столкнулся, заключается в том, что хотя вступление воспроизводится нормально и загружает / отображает начало заголовка swf, который является анимацией загрузки, сам заголовок фактически никогда не воспроизводится. По сути, мой вопрос таков: что может привести к тому, что SWF-файл на основе ActionScript 3 будет вести себя по-другому, если он является потомком другого SWF-файла, а не на верхнем уровне встроенного SWF-файла?

Потенциально важные детали: Вложение обрабатывается с помощью swfobject, и в него не передаются flashvars. Есть два параметра, которые base: "/flash/" и wmode: "opaque". Все данные SWF и флэш-памяти живут в /flash/. Элементы flash (без встроенного мною вступления) были созданы с использованием Inky flash framework , с которым я не знаком.

ОБНОВЛЕНИЕ : Я пересмотрел свой подход к проблеме и начал работать с использованием ExternalInterface; У меня есть заставка swf, вызывающая функцию js, когда она заканчивает играть, которая заменяет вступление swf и заменяет его текущим заголовком (подход обозначен здесь ). Я все еще хотел бы знать, почему я был свидетелем поведения, которое я видел ранее, поэтому любые идеи и предложения будут приветствоваться.

1 Ответ

1 голос
/ 04 февраля 2010

Там может быть несколько потенциальных проблем с вашими флэш-файлами.

Если ваш swf был скомпилирован в AS2, он может ссылаться на _root, который будет испорчен при загрузке в другой swf.В AS2 вы можете обойти это, используя _lockroot.В AS3 это больше не проблема, потому что _lockroot наследуется.

Если ваш фильм был фильмом на временной шкале, вы можете попробовать вызвать функцию play ().

Если ваше введение загружаетсявнешние активы, вы хотите убедиться, что ваши пути установлены правильно для всех ваших внешних активов.Попробуйте поместить SWF-файл вашего контейнера и вступления в один и тот же каталог.Или устраните неполадки, используя окно Safari Activity, чтобы увидеть, есть ли у вас сообщение «404 not found».

Другая вещь - несовместимая флеш-версия.Вы можете столкнуться с проблемой, если загрузите Flash-версию 9 с Flash-версией 10.

Надеюсь, эти указатели помогут.

...