Задача. Вызов из Javascript методов Flash и наоборот.
Используя эти способы, javascript может получить доступ к буферу обмена ОС, хранимым объектам SharedObject, управлять flash-интерфейсами и многое другое.
Связь JS с объектом Flash Какой бы способ коммуникации мы не выбрали, JS должен уметь находить объект Flash на странице.
Для того, чтобы все работало кроссбраузерно, Flash-ролик нужно вставить с использованием специального шаблона:
<object
id="BridgeMovie" width="400" height="200"
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="movie" value="bridge.swf" />
<param name="allowScriptAccess" value="sameDomain" />
<embed
src="bridge.swf"
name="BridgeMovie" align="middle"
play="true" loop="false" quality="high" allowScriptAccess="sameDomain"
width="400" height="200" scale="exactfit"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed>
</object>
- Имя ролика
BridgeMovieдублируется какobject.idиembed.name. - Путь к ролику
bridge.swfдублируется вobject/embed - Параметр
allowScriptAccess="sameDomain" - Дублируются размеры ролика
window["BridgeMovie"] для IE или document["BridgeMovie"] в остальных браузерах:function getMovie() {
var M$ = navigator.appName.indexOf("Microsoft")!=-1
return (M$ ? window : document)["BridgeMovie"]
}
Flash вызывает Javascript
getURL
Самый древний, знакомый большинству флешеров способ - это вызов javascript-функции посредством
getURL с протоколом javascript:getURL('javascript:функция("параметры");');
- Работает во всех броузерах
- Flash 5 и выше
- Прост в применении
- Не возвращает результат
- Длина передаваемой строки ограничена 508 символами.
fsCommand
Вызов осуществляется так:
fsCommand("функция", "параметры")Чтобы принять этот вызов, в Javascript должна быть специальная обвязка.
Редактор Flash может сгенерировать ее автоматически при публикации ролика. Для этого нужно в Publish Settings:
- Во вкладке Formhats включить публикацию html-файла
- Во вкладке HTML выбрать Template: Flash with FSCommand
Функция обработки fsCommand
Название функции имеет вид
<ИмяРолика>_DoFSCommand. В нашем случае это BridgeMovie_DoFSCommandПервый аргумент - имя вызываемой функции, второй - строка аргументов.
Простейший вариант выглядит так:
// вызвать функцию command с аргументом args
window[command].call(null, args)
}
Получится цепочка вызовов:
- (Flash)
fsCommand("show","something") - (JS)
BridgeMovie_DoFSCommand(command,("show","something") - (JS)
show("something")
Пример и исходники Вы сможете найти на этой странице: http://javascript.ru/unsorted/bridge-flash
Anonymous
January 9 2011, 05:45:40 UTC 1 year ago
секс знакомства без авторизации
http://vkontakte.ru/id118346125г оренбург интим знакомства
знакомства мамба архангельск
секс знакомства в ишимбае (http://vkontakte.ru/id118346125)
[url=http://vkontakte.ru/id118346125]сек