Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2011, 22:39   #1
yury_coder
Пользователь
 
Регистрация: 31.10.2010
Сообщений: 53
По умолчанию Двухсторонняя связь Javascript и Flash

Задача такая:

Есть файл index.html, который запускается на компьютере пользователя (расширение Opera 11) и Flash-файл example.swf. Необходимо установить между ними двухстороннюю связь обмена данными.

Задача усложняется тем, что example.swf обязан воспроизводить mp3 с внешнего сайта.

Если example.swf находится здесь же, на стороне пользователя, то обмен данными налаживается, но активность в сторону внешнего хоста с mp3 блокируется.

Выглядит приблизительно так:
Javascript:
Код:
<html>
<head>
<script type="text/javascript">
//Функция - получатель сообщения от flash
function receiver(variable) {
  //Здесь любые действия над данными
}
window.addEventListener("load", function()
{
  //Получаем flash-контейнер
  var flash = document['myflash'];

  //Отправляем данные
  flash.SetVariable('myVar', 'value');
}, false);
</script>
</head>
<body>
<embed src="example.swf"
  quality="high"
  id="myflash"
  name="myflash"
  swliveconnect="true"
  AllowSсriрtAccess="always"
  type="application/x-shockwave-flash" />
</body>
</html>
Flash:
Код:
var myVar = null;
_root.onEnterFrame = function() {
  if (myVar != null) {
    //Здесь действия над переменной
    //Для примера - простая трансляция обратно
    getURL("javascript:receiver("+myVar+");");
    myVar = null;
  }
};
Для всей этой затеи есть зарегистрированный сайт.

Если example.swf находится на сайте, а html подключает его напрямую, то mp3 воспроизводится, связь Flash -> Javascript налаживается, но обратная связь блокируется.

Код практически не поменялся, только на стороне Javascript адрес example.swf заменился на адрес моего сайта.

Пробовал даже при помощи IFrame загружать с того же сайта отдельный документ для управления Flash. Тогда связь между этим фреймом и Flash 'ем устанавливается, музыка загружается, но тогда фрейм становится полностью независимым и любые попытки управлять фреймом блокируются из соображений безопасности.

Вот такая вот билиберда, жду дельных советов.

З.Ы:
Думал, получится покороче

Последний раз редактировалось yury_coder; 12.01.2011 в 22:40. Причина: ошибка
yury_coder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PDF двухсторонняя печать VladimirVB Microsoft Office Word 3 23.11.2010 12:23
Вставка Flash в Flash bookkc Помощь студентам 0 02.10.2010 14:50
Предлагаю свои услуги (PHP,JavaScript,HTML,Flash) Mutant Фриланс 2 30.05.2010 12:19
FLASH и JAVASCRIPT ff256 HTML и CSS 0 01.04.2010 14:47
Связь с БД Elena БД в Delphi 4 03.05.2007 16:08