Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.06.2009, 12:43
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 11  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Да, грубо говоря, JS выполняется браузером из скрипта, размещенного в HTML-странице. Что тогда может означать "внутри флешки установить значение переменной с помощью JS" ? У вас нет доступа к коду страницы публикации swf-ки?

Старый 24.06.2009, 12:51
MaskiShow вне форума Посмотреть профиль Отправить личное сообщение для MaskiShow Найти все сообщения от MaskiShow
  № 12  
Ответить с цитированием
MaskiShow

Регистрация: Feb 2009
Сообщений: 108
То и означает - установить значение переменной флеша с помощью js, не используя код страницы. JS должен быть только в теле флешки.

Старый 24.06.2009, 13:58
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 13  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Если рассуждать логически, то:

Флеш умеет взаимодействовать с внешней средой через Flash Player, который в свою очередь "знает" как передать запросы от AS внешней среде, выполненные с использованием класса ExternalInterface, а также может инициализировать переменную AS с помощью параметра внутри флешки при ее публикации - flashvars. Флеш умеет взаимодействовать с внешней средой также с помощью функции fscommand, которая передает инструкции непосредственно Flash Player'у.

JS - это программный листинг, выполняемый средой браузера, и как-то изменить/сгенерировать его изнутри флешки нельзя, можно использовать только имеющийся код.
С помощью AS-функции getURL можно загрузить документ в текущее или новое окно браузера, и передать документу значения переменных... использовать для этого javascript также можно в качестве аргумента url.

ИМХО, вывод - для получения каких-то данных от загруженного документа все-таки придется использовать "код страницы", писать на странице публикации флеша все-таки что-то придется. Вы же там пишете при публикации <obiect>, <param>, <embed>; что не дает вам использовать параметр публикации flashvars для получения имени браузера?


Последний раз редактировалось mooncar; 24.06.2009 в 14:22.
Старый 24.06.2009, 16:43
Stargazer вне форума Посмотреть профиль Отправить личное сообщение для Stargazer Найти все сообщения от Stargazer
  № 14  
Ответить с цитированием
Stargazer

Регистрация: Nov 2008
Сообщений: 528
Цитата:
все-таки придется использовать "код страницы", писать на странице
В случае особой необходимости можно создать javascript-функцию при помощи самого же js-запроса.

Как-то так.
Код AS1/AS2:
var s:String = "function (){ var browser = navigator.appName; return browser; }()";
var browserVersion = ExternalInterface.call(s);
Хотя сперва нужно протестировать . Давно я js не занимался, может что спутал.

Старый 24.06.2009, 18:40
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 15  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Признаю, был неправ, вот этот вариант работает:
Код AS1/AS2:
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"

Значит, можно

Старый 24.06.2009, 20:18
MaskiShow вне форума Посмотреть профиль Отправить личное сообщение для MaskiShow Найти все сообщения от MaskiShow
  № 16  
Ответить с цитированием
MaskiShow

Регистрация: Feb 2009
Сообщений: 108
Значит в самой флешке узнать тип браузера нельзя.

Старый 24.06.2009, 20:24
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 17  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Работает же, рзобрались, посмотри мой последний пост!

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:21.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 12:21.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.