PDA

Просмотр полной версии : Как можно в flash-ролик передать какие-нибудь переменные?


B0Bka
15.06.2004, 00:59
Как можно в flash-ролик передать какие-нибудь переменные?
Можно ли это как-то сделать через javascript функцию
(типа: <a href="javascript:send_id_pres(1);">link</a>)

Tyler Durden
29.06.2004, 19:12
:confused: На самом деле сам интересуюсь этим вопросом. Как можно из JavaScript'a передать переменные во Flash...? Неужели никто не знает?!!
Я слышал что-то про Active X и т.д. Это еще в хелпе по Флэшу написано... Но ничего конкретного...

wwwita
30.06.2004, 17:13
можна :D
несколькими способами:
1. через сервер и класс LoadVars (вариант c LoadVariables тоже работает)
2. через сервер и класс XML
3. через яваскрипт в id либо name внедренного объекта (не работает в Опере)
4. через actionscript:... что-то там -- посмотрите в мануале
5. можно ещё делать file.swf?var1=ttt -- в тех местах внедренного документа, где написано file.swf...

может я ещё не все способы написал..... посмотрите мануал -- там все подробно и с примерами :cool:

Tyler Durden
30.06.2004, 19:08
Спасибо! Но только ничего не выходит...

Предположим, что в фильме js_test.swf есть поле динамического текста pole1. Фильм уже загружен в броузер.
<OBJECT classid="..." codebase="..." id="js_test">
<EMBED src="js_test.swf" NAME="js_test"></EMBED>
</OBJECT>
Также допустим, что на HTML-страничке, в которую загружен js_test.swf, есть кнопка. При нажатии на эту кнопку содержимое поля pole1 должно принимать значение, к примеру, "Knopka nazhata!"...

Вопрос в том, как обратиться к переменной pole1 фильма js_test.swf? Через id и name не получается... То есть
<input type="button" value="Test" onClick="document.js_test.pole1.value = 'Knopka nazhata!'"> не работает...

Что-то все это как-то неправдоподобно, чтобы так просто можно было передавать значения переменным во Flash'е из броузера... Или я не прав? :)

moksha
04.07.2004, 13:54
<input type="button" value="Test" onClick="document.js_test.SetVariable('pole1','Kno pka')"/>

и все заработает

(по моему я это в стандартной документации прочитал ;-)

Tyler Durden
05.07.2004, 11:24
Благодарю тебя, любезный соотечественник... Все заработало!

Prokur
05.07.2004, 20:19
А можно как-то передать переменную в флеш через параметр? Например <param name=menu value=false> Вырубает меню флеша.
Как передать переменную при загрузке ролика. Например есть ролик, в нём два языка. RU и EN. Мне надо переменная lang.
Как мне сделать что-то такое <param name=lang value=en>
И как мне её вытащить в флеше?

wwwita
05.07.2004, 22:01
ищешь file.swf в html коде (2 места), меняешь его на file.swf?lang=en

во флеше обращаешься к переменной lang как _root.lang, то есть как к обычной :)

moksha
06.07.2004, 00:09
Оригинал написал(а) wwwita
ищешь file.swf в html коде (2 места), меняешь его на file.swf?lang=en

во флеше обращаешься к переменной lang как _root.lang, то есть как к обычной :)

или воспользоваться параметром тега <OBJECT> под названием
FLASHVARS (см. документацию по публикации в браузере на сайте макромедии)

<param name="flashvars" value="lang=ru&v1=321&v2='some+value'"/>

в качестве альтернативы к "file.swf?lang=en" такой вариант имеет некоторые преимущества, как-то:
позволяет использовать swf сохраненный в кеше браузера,
строка может быть длиной до 64kb (в отличие от 256b)
строки создаются до начала проигрывания 1 кадра

доступ к переменным, как и в предыдущем случае, из корня swf-ки

dimka_b
13.07.2004, 18:48
Я могу обновлять переменные в flash'е. А как мне сделать так чтобы вызвалось какое-нибудь событие или фунция Flash из JavaScript. мне надо чтобы перерисовался flash с новыми данными.

moksha
14.07.2004, 09:06
Оригинал написал(а) dimka_b
Я могу обновлять переменные в flash'е. А как мне сделать так чтобы вызвалось какое-нибудь событие или фунция Flash из JavaScript. мне надо чтобы перерисовался flash с новыми данными.


идем сюда

http://www.macromedia.com/support/flash/publishexport.html

а точнее сюда

http://www.macromedia.com/support/flash/publishexport/scriptingwithflash/index.html

и скорее всего сюда

http://www.macromedia.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html

удачи !

FreeLander
17.07.2004, 12:51
на самом деле там нет методов вызова функции ролика из JavaScript. Я, например, делаю следующим образом: отслеживаю какую-нидь переменную в ролике при помощи watch, т.е. прикрепляю функцию на событие изменения этой переменной, т.о. изменяя эту переменную при помощи setVariable из Явы, я инициирую выполнение функции.