Все ли SWF-файлы Flash имеют встроенные методы взаимодействия с Javascript? - PullRequest
1 голос
/ 05 февраля 2011

Я не работаю с Flash и, следовательно, ничего о нем не знаю, но у меня есть задача встроить SWF-фильм в веб-страницу. Я ничего не знаю о внутреннем дизайне SWF, кроме того, что он играет короткий фильм. Я хотел бы контролировать, когда SWF начнет воспроизводиться, перемотать его (он будет проигрываться бесконечно) и, возможно, даже кэшировать его в браузере. Это будет частью ротации изображений на основе Javascript, в которой элемент <img> будет временно заменен на <object> для swf.

У меня вопрос: есть ли в SWF-файлах интерфейс для встроенного Javascript при компиляции (Actionscript, я думаю?), Или это будет полностью зависеть от решения автора включить такой код? Если зависит от включения автором кода, могу ли я выполнить какие-либо возможные тесты, чтобы увидеть, какие методы могут быть доступны?

1 Ответ

1 голос
/ 05 февраля 2011

Интересный вопрос. К сожалению, на самом деле нет простых ответов на этот вопрос - во Flash есть миллион способов что-либо сделать, и в зависимости от того, что делал первоначальный разработчик, у вас есть разные варианты действий.

Flash Player предоставляет метод ExternalInterface прямо в нативном API, поэтому каждое приложение Flash может вызывать JavaScript. Если разработчик настроил его, вы даже можете зарегистрировать внутренний метод обратного вызова во флэш-памяти для ответа на команды javascript - так что вы можете заставить его работать в обоих направлениях.

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

В зависимости от того, как построен SWF, у вас есть несколько вариантов. Прежде всего, вы можете попробовать добавить параметр LOOP = TRUE в ваш код для встраивания (подробнее здесь ). Если это базовая анимация на временной шкале или кадры вашего видеоклипа были выгружены на временную шкалу и для ее воспроизведения используются собственные инструменты анимации Flash, то это может быть все, что вам нужно.

Если это не сработает, то все станет немного сложнее. Вы можете попытаться декомпилировать .swf, используя один из любого числа декомпиляторов Flash - это может дать вам некоторое представление о том, какие существуют методы, как он структурирован и т. Д. Однако это не совсем хорошая наука - вам нужны некоторые проб и ошибок.

Если в процессе самоанализа swf вы, например, узнаете, что у него есть объект с именем «video» типа «Video», то вы можете написать оболочку .swf, загрузить в целевой SWF и получить интерфейс оболочки с JavaScript. Если все, что вам нужно, это цикл, видеообъект может даже иметь свойство автоповтора или что-то в этом роде.

Это было немного затянуто, но я надеюсь, что это помогло. Оставьте комментарий, если у вас есть какие-либо вопросы!

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