![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Модрон-ветеринар
|
Да, грубо говоря, JS выполняется браузером из скрипта, размещенного в HTML-странице. Что тогда может означать "внутри флешки установить значение переменной с помощью JS" ? У вас нет доступа к коду страницы публикации swf-ки?
|
|
|||||
|
Регистрация: Feb 2009
Сообщений: 108
|
То и означает - установить значение переменной флеша с помощью js, не используя код страницы. JS должен быть только в теле флешки.
|
|
|||||
|
Модрон-ветеринар
|
Если рассуждать логически, то:
Флеш умеет взаимодействовать с внешней средой через Flash Player, который в свою очередь "знает" как передать запросы от AS внешней среде, выполненные с использованием класса ExternalInterface, а также может инициализировать переменную AS с помощью параметра внутри флешки при ее публикации - flashvars. Флеш умеет взаимодействовать с внешней средой также с помощью функции fscommand, которая передает инструкции непосредственно Flash Player'у. JS - это программный листинг, выполняемый средой браузера, и как-то изменить/сгенерировать его изнутри флешки нельзя, можно использовать только имеющийся код. С помощью AS-функции getURL можно загрузить документ в текущее или новое окно браузера, и передать документу значения переменных... использовать для этого javascript также можно в качестве аргумента url. ИМХО, вывод - для получения каких-то данных от загруженного документа все-таки придется использовать "код страницы", писать на странице публикации флеша все-таки что-то придется. Вы же там пишете при публикации <obiect>, <param>, <embed>; что не дает вам использовать параметр публикации flashvars для получения имени браузера? Последний раз редактировалось mooncar; 24.06.2009 в 14:22. |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 528
|
Цитата:
Как-то так. var s:String = "function (){ var browser = navigator.appName; return browser; }()"; var browserVersion = ExternalInterface.call(s); . Давно я js не занимался, может что спутал. |
|
|||||
|
Модрон-ветеринар
|
Признаю, был неправ, вот этот вариант работает:
import flash.external.* ; var s:String = "function () { var browser = navigator.appName; return browser; }"; var browser = ExternalInterface.call(s); "call (ExternalInterface.call method) Calls a function exposed by the Flash Player container.... ...... If the container is an HTML page, this method invokes a JavaScript function in a <script> element" Значит, можно ![]() |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 108
|
Значит в самой флешке узнать тип браузера нельзя.
|
|
|||||
|
Модрон-ветеринар
|
Работает же, рзобрались, посмотри мой последний пост!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 19:09. |
|
|
« Предыдущая тема | Следующая тема » |
|
|