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

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

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

Регистрация: Feb 2013
Сообщений: 24
По умолчанию ExternalInterface из JS в Flash не работает

Приветствую, казалось бы более менее понятная вещь, из флешки выполнить js функцию получилось легко, а наоборот вот уже битый час голову ломаю в чем проблема. Флеш на страницу вставляю с помощью SwfObject. Нужно из js скрипта выполнить функцию в флешке, вот мой коды:

Flash:
Код AS3:
Security.allowDomain("*");
 if (ExternalInterface.available)
  {
   trace("ExternalInterface= " + ExternalInterface.available);
   flash.external.ExternalInterface.addCallback('jsToFlash', jsHandler);
  }
 
private function jsHandler(message:String):void
 {
  menum.entxt.text = message;
  }
HTML(JS):
Код:
var params                  =   {};
params.menu                 =   "false";
params.salign               =   "t";
params.scale                =   "noscale";
params.wmode                =   "transparent";
params.allowScriptAccess    =   "always";

var attributes              =   {};
attributes.id = "hero";
attributes.name = "hero";

swfobject.embedSWF("hero.swf", "app", "700", "525", "10","https://vkontakte.ru/swf/expressinstall.swf", flashVars, params, attributes);

//Другой код и в нужном месте вызываю
document.getElementById("hero").jsToFlash();
И в итоге получаю такую ошибку при попытке отправить элементу hero (сам элемент находится):
Uncaught TypeError: document.getElementById(...).jsToFlash is not a function

В чем дело и как исправить подскажите кто знает плиз!

Добавлено через 3 часа 55 минут
Выяснил в чем дело было, оказывается флешка не обновлялась просто на сайте!


Последний раз редактировалось scorp2007; 26.09.2015 в 20:23.
Старый 27.09.2015, 00:24
ALeXVoz вне форума Посмотреть профиль Отправить личное сообщение для ALeXVoz Посетить домашнюю страницу ALeXVoz Найти все сообщения от ALeXVoz
  № 2  
Ответить с цитированием
ALeXVoz
 
Аватар для ALeXVoz

Регистрация: Nov 2008
Адрес: Ukraine, Kyiv
Сообщений: 94
Отправить сообщение для ALeXVoz с помощью Skype™
Можно пробовать вот так
Код:
<script>
function sendFromJS(value) {
    var movie = (navigator.appName.indexOf("Microsoft")!=-1 ? window : document)["BridgeMovie"]    
    movie.jsToFlash(value);    
}
</script>
Где флешь вставлен через эмбед
Код:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" name="BridgeMovie" width="500" height="300" id="BridgeMovie">
    <param name="movie" value="hero.swf" />
    <param name="allowScriptAccess" value="sameDomain" />
    <embed src="hero.swf" name="BridgeMovie" align="middle" play="true" loop="False" quality="high" allowscriptaccess="sameDomain" width="500" height="300" scale="exactfit" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
    </embed>
</object>
BridgeMovie - встречается в id и в name и у объекта и у эмбеда. Не помню обязательно это или нет. Надо тестировать.

Насчет SwfObject не знаю, сработает ли метод. Надо тестировать.
Код взят с рабочего проекта.

Ошибка может быть в том, что сначала надо получить ссылку на объект (в переменную) а потом уже у переменной вызывать метод jsToFlash


Последний раз редактировалось ALeXVoz; 27.09.2015 в 00:28. Причина: ошибка
Создать новую тему Ответ Часовой пояс GMT +4, время: 21:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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