Javascript - Flash мост
Търсене във форума |
подробно търсене |
Към страницата. |
Javascript Flash Bridge
Използвайки тези методи, javascript може да осъществява достъп до клипборда на операционната система, съхранените споделени обекти, да манипулира флаш интерфейси и др.
Свързване на JS към Flash обекта
Какъвто и начин да изберем за комуникация, JS първо трябва да може да намери Flash обекта на страницата.
За да може всичко да работи между различни браузъри, Flash филмът трябва да бъде вмъкнат, като се използват и обект, и етикет за вграждане, като този:
В този пример подробностите са важни:
- Името на филма BridgeMovie се дублира като object.id и embed.name.
- Пътят до филма bridge.swf се дублира в object/embed
- Параметър allowScriptAccess="sameDomain"
- Дублирани размери на филми
Вече можете да получите филмовия обект от прозорец ["BridgeMovie"] в IE или документ ["BridgeMovie"] в други браузъри:
След това ще анализираме средствата за комуникация с това видео.
Flash извиква Javascript
Най-старият начин, познат на повечето флашъри, е да се извика javascript функция чрез getURL с javascript протокола:
- Работи във всички браузъри
- Flash 5 и по-нови
- Лесен за използване
- Не връща резултат
- Дължината на предавания низ е ограничена до 508 знака.
Обаждането се извършва по следния начин:
За да приемете това повикване, трябва да има специално обвързване в Javascript.
За да направите това, в Настройки за публикуване:
- В раздела Formats активирайте публикуването на html файла
- В раздела HTML изберете Шаблон: Flash с FSCommand
Генериран шаблонОбвивката на javascript се състои от две части: функция за обработка и допълнителен код за IE.
Функция за обработка на fsCommand
Името на функцията е _DoFSCommand. В нашия случай това е BridgeMovie_DoFSCommand
Първият аргумент е името на функцията, която ще бъде извикана, вторият е низът на аргумента. Най-простата версия изглежда така:
Извикването, например, на функцията show от Flash ще доведе до верига от извиквания:
- (Flash) fsCommand("покажи","нещо")
- (JS) BridgeMovie_DoFSCommand("покажи","нещо")
- (js) шоу ("нещо")
Допълнително обвързване за IE/Win
Този код е необходим само за IE под Windows, в допълнение към BridgeMovie_DoFSCommand, тъй като в този браузър fsCommand не извиква Javascript, а VBScript.