Javascript - Flash міст

Пошук по форуму
Розширений пошук
До сторінки.

Javascript Flash міст

Використовуючи ці способи, JavaScript може отримати доступ до буфера обміну ОС, об'єктам SharedObject, що зберігаються, керувати flash-інтерфейсами і багато іншого.

Зв'язок JS з об'єктом Flash

Який би спосіб комунікації ми не вибрали, спочатку JS повинен вміти знаходити об'єкт Flash на сторінці.

Для того, щоб все працювало кросбраузерно, Flash-ролик потрібно вставити з використанням обох тегів: object і embed , наприклад:

У цьому прикладі суттєві деталі:

  1. Ім'я ролика BridgeMovie дублюється як object.id та embed.name.
  2. Шлях до ролика bridge.swf дублюється в object/embed
  3. Параметр allowScriptAccess="sameDomain"
  4. Дублюються розміри ролика

Тепер об'єкт ролика можна отримати з window["BridgeMovie"] для IE або document["BridgeMovie"] в інших браузерах:

Далі ми розберемо кошти на комунікації з цим роликом.

Flash викликає Javascript

Найдавніший, знайомий більшості флешерів спосіб - це виклик javascript-функції за допомогою getURL з протоколом javascript:

  • Працює у всіх броузерах
  • Flash 5 і вище
  • Простий у застосуванні
  • Чи не повертає результат
  • Довжина рядка, що передається, обмежена 508 символами.

Виклик здійснюється так:

Щоб прийняти цей виклик, Javascript має бути спеціальна обв'язка.

Для цього потрібно в Publish Settings:

  1. У вкладці Formats включити публікацію html-файлу
  2. У вкладці HTML вибрати Template: Flash with FSCommand

Шаблон генеруванняjavascript-обв'язування складається з двох частин: функція обробки та додаткового коду для IE.

Функція обробки fsCommand

Назва функції має вигляд _DoFSCommand. У нашому випадку це BridgeMovie_DoFSCommand

Перший аргумент - ім'я функції, другий - рядок аргументів. Найпростіший варіант виглядає так:

Виклик, наприклад, функції show з Flash призведе до ланцюжка викликів:

  1. (Flash) fsCommand("show","something")
  2. (JS) BridgeMovie_DoFSCommand("show","something")
  3. (JS) show("something")

Додаткова обв'язка для IE/Win

Цей код потрібен тільки для IE під Windows, на додаток до BridgeMovie_DoFSCommand, тому що в цьому браузері fsCommand викликає не Javascript, а VBScript.