|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Feb 2004
Сообщений: 6
|
Передача данных в другой фрейм через Js.......
Мне нужно сделать так чтобы Flash мувики находящиеся в разных фреймах могли обмениваться информацией.
По аналогии с одним из местных примеров получается это примерно так: <SCRIPT LANGUAGE="JavaScript"> function Movie_DoFSCommand(comm, arg) { if (comm=="LoadMenu"){ parent.left_frame.document.Movie.SetVariable("FileName", arg); parent.left_frame.document.Movie.GotoFrame(1); } if (comm=="LoadPage"){ parent.right_frame.document.Movie.SetVariable("FileName", arg); parent.right_frame.document.Movie.GotoFrame(1); } } </SCRIPT> <SCRIPT LANGUAGE=VBScript> Sub Movie_FSCommand(ByVal command, ByVal args) call Movie_DoFSCommand(command, args) end sub </SCRIPT> ......НО это работает в IE, а в опере работать не желает. Не запускаются ни та ни другая процедуры. Я чесно говоря в замешательстве, даже не знаю где копать... Если кто-нибудь знает хотябы в какой документации или литературе можно найти ответ, буду очень признателен |
|
|||||
Первым делом я бы попытался проверить, работает ли в Опере FSCommand в принципе. Последний раз, когда я пытался делать что-либо через FSCommand, в Опере это было невозможно. Все потому, что она не поддерживала до последнего времени такое свойство флеш-объекта, как swLiveConnect.
Так что мой совет - запускать скрипты через getURL("javascript:void(myFunction('myparam'))") |
|
|||||
Между прочим, а у тебя стоИт в теге <Embed ...>
swLiveConnect=true ???? |
|
|||||
Регистрация: Feb 2004
Сообщений: 6
|
Спасибо Stary.
Буду пробовать через getURL. Не знал что так можно. Не подскажешь какую-нибудь литературу по взаимодействию ActionScript и JS? ...А в <EMBED> у меня все прописанно. |
|
|||||
Насчет литературы - любая более-менее объемная книжка по флешу (можно и по пятому) содержит хотя бы главу на эту тему.
Кроме FSCommand и getURL есть еще довольно спорный метод обращения флеша к яваскрипту, который называется "метод скрытого фрейма". Состоит он вот в чем: в специальный фрейм через getURL загружается страница, в которой запускается скрипт (например - по onload). Скрипт может обращаться к любому фрейму на любом уровне фреймовой структуры, как и всякий яваскрипт. Преимущества этого метода в том, что он без проблем работает в любом абсолютно браузере с поддержкой фреймов и на любой платформе (в т. ч. - под любой MacOS). Недостатки очевидны - фреймы, высокая латентность. В последних браузерах его можно использовать, не доводя ситуацию до абсурда (вместо обычных фреймов можно использовать iFrame). Из яваскрипта же к флеш-объекту можно обращаться через специальные методы. Главный из них - MyFlashObj.setVariable("myvar","myvalue") . Перед этим нужно добраться до флеш-объекта. В ИЕ это просто FlashID . В NN - document.FlashID . В других я бы попробовал использовать document.getElementByID("FlashID"). Могу ошибаться, потому что давно этого не делал. Экспериментируй. Фактически теперь ты знаешь все то же самое, что и я. Последний раз редактировалось Stary; 25.02.2004 в 17:02. |
|
|||||
Регистрация: Feb 2004
Сообщений: 6
|
...все работает. Спасибо.
Что касается обращения из яваскрипта к флэш-объекту, то вроде везде работает - document.FlashID. |
Часовой пояс GMT +4, время: 23:00. |
|
« Предыдущая тема | Следующая тема » |
|
|