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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.06.2011, 20:30
AzagThoth вне форума Посмотреть профиль Отправить личное сообщение для AzagThoth Найти все сообщения от AzagThoth
  № 1  
Ответить с цитированием
AzagThoth
 
Аватар для AzagThoth

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
По умолчанию Вызов из JavaScript вшитого во флешку -> функции ActionScript

Здравствуйте.

Столкнулся с такой проблемой - не знаю как вызвать функцию AS из кода на JavaScript вшитого во флешку.
Опишу подробнее. Допустим есть флешка. В ней пять ключевых кадров. В первом кадре написано:
Код AS1/AS2:
this.stop();
getURL("javascript: alert('Hello World')");
Если откроем в браузере то всё замечательно отработает и увидим алерт от JavaScript.
Теперь допустим мне надо перейти на третий кадр. Что тогда я должен написать в коде вызова getURL("javascript: xxxxxx")

Разумеется сама задача вообще другая и гораздо объёмистей. Мне нужно сам принцип понять вызова из встроенного флешку кода на JavaScript конструкций и функций ActionScript.

Добавлено через 2 часа 14 минут
Большая просьба. Если вдруг знаете как это сделать, но лень писать - просто направьте меня. Например почитать про ExternalInterface и подобное. Уже очень много инфы перечитал на эту тему и пока вообще 0 идей. Дело в том, что все примеры в интернете описывают когда ролик зашит в html страницу и у него есть некое имя, то через это имя с ним и работают. Тут же ситуация, что ролик может играть в браузере как просто swf файл. Может конечно и быть на html-странице но с не объявленным именем или любым произвольным именем. То есть вопрос стоит именно в том, как управлять неименованным роликом через JavaScript вшитого в код ActionScript. Или же выскажите своё мнение если считаете что это невозможно.
__________________
Играй. Это жизнь.
Всё повторяется. Играй.


Последний раз редактировалось AzagThoth; 24.06.2011 в 22:47.
Старый 24.06.2011, 23:02
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
ExternalInterface?
__________________
Hell is the possibility of sanity

Старый 24.06.2011, 23:13
AzagThoth вне форума Посмотреть профиль Отправить личное сообщение для AzagThoth Найти все сообщения от AzagThoth
  № 3  
Ответить с цитированием
AzagThoth
 
Аватар для AzagThoth

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Ну через него же можно получать переданные переменные из JavaScript.
Вот здесь об этом тема:
http://www.flasher.ru/forum/showthread.php?t=120517 (Правда тут про AS3 и ролик вшит в html страницу как я понял)
Мне бы и переданных переменных хватило, там бы я разобрался что с ними делать.

Ну можно и не через getURL вызывать JavaScript. Так например:
Код AS1/AS2:
import flash.external.ExternalInterface;
ExternalInterface.call('function merf() { alert("Hello world"); }');
Вот как только из вызванного JavaScript обратиться к функциям Flash ума не приложу
__________________
Играй. Это жизнь.
Всё повторяется. Играй.

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

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

Только не понимаю, почему бы вам сразу не вызвать нужную функцию во флешке, минуя посредничество JS ?
__________________
Идите первым!


Последний раз редактировалось mooncar; 24.06.2011 в 23:44.
Старый 24.06.2011, 23:51
AzagThoth вне форума Посмотреть профиль Отправить личное сообщение для AzagThoth Найти все сообщения от AzagThoth
  № 5  
Ответить с цитированием
AzagThoth
 
Аватар для AzagThoth

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Да долго объяснять, но именно так нужно. И потом это использовать активно планирую в других задачах.
На сколько я понял addCallback работает только если в теле html документа есть блок с JavaScript и ролик вызывается через html страницу и имеет имя идентификатор, что бы к нему обращаться из вне по JavaScript.

Добавлено через 32 минуты
Просто у меня в JS будут некие условия, и в зависимости от этих условий. Я планирую те или иные функции ActionScript вызывать.
__________________
Играй. Это жизнь.
Всё повторяется. Играй.


Последний раз редактировалось AzagThoth; 24.06.2011 в 23:54.
Старый 25.06.2011, 00:28
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от AzagThoth Посмотреть сообщение
На сколько я понял addCallback работает только если в теле html документа есть блок с JavaScript и ролик вызывается через html страницу и имеет имя идентификатор, что бы к нему обращаться из вне по JavaScript.
Предполагается, что мы не знаем id контейнера, где расположена флешка?
Внутри флешки мы можем попробовать его узнать.
А вот как объявить из флешки JS-метод, доступный для addCallback в неё же, мне не понятно, это надо JS копнуть.

Добавлено через 3 минуты
Цитата:
Сообщение от AzagThoth Посмотреть сообщение
Просто у меня в JS будут некие условия, и в зависимости от этих условий. Я планирую те или иные функции ActionScript вызывать.
Так запишите заранее в JS комплексную функцию, которая бы и учитывала ваши условия, а при вызове с помощью call из флешки принимала бы от нее еще и какие-то параметры.

В общем, все расплывчато, условия задачки неясны.
__________________
Идите первым!


Последний раз редактировалось mooncar; 25.06.2011 в 00:33.
Старый 25.06.2011, 00:34
AzagThoth вне форума Посмотреть профиль Отправить личное сообщение для AzagThoth Найти все сообщения от AzagThoth
  № 7  
Ответить с цитированием
AzagThoth
 
Аватар для AzagThoth

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
В том то и дело что мы не знаем id контейнера куда загружена флешка. Его может и не быть вовсе. Флешка может просто напрямую загрузиться как http://mysite.ru/nasha_fleshka.swf (т.е. просто как swf файл). На самом деле мне уже в глубине души кажется что это в принципе не возможно сделать. Но ой как же хочется

Добавлено через 2 минуты
Ну я же попробовал максимально упростить в первом посте. Просто средствами JS функции описанной внутри флешки, перейти на третий кадр например. Если сделать это то дальше всё само разрешится. Станет понятно как вызывать функции AS из вшитого JS, а дальше уже дело техники.

Добавлено через 5 минут
А как попробовать узнать id контейнера внутри флешки? Я пробовал пройтись for(var i in this) но ни какой инфы там об id контейнера увидеть не удалось.
__________________
Играй. Это жизнь.
Всё повторяется. Играй.

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
id может и не быть, если он не задан (как в случае "загрузиться напрямую"), но ссылку на сам объект в DOM попробовать получить можно. Это и нужно.
__________________
Идите первым!


Последний раз редактировалось mooncar; 25.06.2011 в 00:46.
Старый 25.06.2011, 01:00
AzagThoth вне форума Посмотреть профиль Отправить личное сообщение для AzagThoth Найти все сообщения от AzagThoth
  № 9  
Ответить с цитированием
AzagThoth
 
Аватар для AzagThoth

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Да, большое спасибо. Очень логично. Полагаю что дальше уже разберусь! Большое спасибо за ценный совет.
__________________
Играй. Это жизнь.
Всё повторяется. Играй.

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

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

PS>
Код AS1/AS2:
import  flash.external.*;
ExternalInterface.call('alert(this)');
Но как дальше?
__________________
Идите первым!

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

Теги
as2 , javascript
Опции темы
Опции просмотра

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

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


 


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


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