Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Передача информации из JS во Flash


Автор: Zorro 30.1.2005, 17:05
Нужно передать информацию из JS во флэш. Есть флэш-объект:
Код

<OBJECT classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
id="LogoFlash" width="418" height="164" align="middle" VIEWASTEXT>
<PARAM name="allowScriptAccess" value="always" />
<PARAM name="movie" value="IMG/Flash/Logo.swf" />
<PARAM name="menu" value="false" />
<PARAM name="quality" value="high" />
<PARAM name="bgcolor" value="#000000" />
<EMBED src="IMG/Flash/Logo.swf" menu="false" quality="high" bgcolor="#000000" width="418"
height="164" swliveconnect=true id="LogoFlash" name="LogoFlash" align="middle" allowscriptaccess="always"
type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</OBJECT>

И функция JS:
Код

function dataToFlash()
{
var flash = window.document.LogoFlash; //Наш флэш-элемент
alert(flash.IsPlaying()); //(1) Если он может вызвать функцию для флэш-объекта, то будет возвращено true либо false, иначе ошибка
flash.SetVariable("js", "123"); //(2) Установить переменной js значение 123
}

Строки (1) и (2) не выполняются в Опере smile , хотя в IE и Мозилле всё работает. По строке (1) выдаётся следующая ошибка:
Код

Javascript URL thread: "javascript:dataToFlash()"
Error:
name: TypeError
message: Statement on line 211: Expression did not evaluate to a function object: flash.IsPlaying
Backtrace:
 Line 211 of linked script http://localhost/SR2/Other.js
   alert(flash.IsPlaying());
 In unknown script
   dataToFlash();

Хотя если вызвать "alert(flash)", то выдаёт: "[object HTMLEmbedElement]" - значит он правильно находит объект.

Помогите, пожалуйста, решить пролбему! smile smile

Автор: Alx 1.2.2005, 17:01
я только что давал скрипт для всех браузеров!
Добавлено @ 17:02
http://forum.vingrad.ru/index.php?showtopic=40183&view=findpost&p=308264

Автор: Zorro 1.2.2005, 21:28
Цитата(Alx @ 1.2.2005, 17:01)
я только что давал скрипт для всех браузеров!

Я видел этот пример, но там описан метод передачи информации из Flash в JS, а мне нужно наоборот! Функция flash.SetVariable() - для передачи информации из JS во флэш - не хочет работать в Опере 7.54 (в других версиях не пробовал) smile

Автор: Sardar 2.2.2005, 01:11
Zorro а в других браузерах работает? Просто сам никогда не сталкивался с этим, но видел как часть кода страницы связывалась с Флешевым обьектом и апплетом, так что это точно возможно.

Другое дело что Опера может просто не поддержать такое, она многое не поддерживает...

Автор: Zorro 2.2.2005, 19:44
Цитата(Sardar @ 2.2.2005, 01:11)
а в других браузерах работает?

В IE 5.5+ и последней Мозилле точно работает.

Справился я с этой головоломкой: просто переустановил оперу и флэш-плагин для неё. Теперь всё работает smile

Автор: Sardar 2.2.2005, 23:06
Zorro осталось учесть что не все переустанавливают браузер и ставят плагины smile
Хотя я считаю на таких нужно забить, ведь сами того хотят smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)