Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Передача данных flash-JavaScript (http://www.flasher.ru/forum/showthread.php?t=127990)

Ezhy 27.07.2009 18:01

Передача данных flash-JavaScript
 
Добрый день!

Задача банальна как мир - есть 3 кнопки (гиперссылки) в HTML-документе и флешка. Необходимо чтобы при клике на кнопки в флешке проигрался один из трех видеороликов.
То есть, необходимо передать имя flv-фала, который требуется проиграть в Flash-плеере.

Пробовал 2мя путями:

1. Через ExternalInterface.addCallback - что-то не смог сделать рабочую связку - браузер выдает ошибку "Неизвестный метод ...". Быть может проблема в том, что страницы просматриваются локально, а не с сервера? Тонкость в том, что просматриваться будет с компакт-диска, а не с сервера. Если возможно, подкиньте работающий примерчик по-проще? (html + fla)

2. Попытался динамически создать объект с флеш-роликом (JavaScript document.createElement ... и т.д.). Проблема в том, что для тега <object> не создается элемент <embed>, а так как все ориентируется на 95% не IE, то без него ни как. Есть вариант решить без тега Object, а просто тегом <embed>, но хотелось бы бОльшей универсальности

Меня бы устроил вариант с передачей имени файла через get-переменные, но что-то не нашел как их (или текущий URL с ними) считать средствами ActionScript....

Заранее большое спасибо!:bye:

Mnilionic 28.07.2009 14:43

можно без <embed>
Код:

<object data="file.swf" type="application/x-shockwave-flash" width="200px" height="100px">
<param name="movie" value="file.swf" />
</object>


Ezhy 28.07.2009 14:55

без <embed> нельзя - ибо
тогда не работает в опере и фоксе... =(

iNils 28.07.2009 15:04

Цитата:

Сообщение от Ezhy (Сообщение 838765)
без <embed> нельзя - ибо
тогда не работает в опере и фоксе... =(

Работает.

Ezhy 31.07.2009 13:53

Покопался, почитал... (iNils, спасибо за инфу!)
Но трабл продолжает иметь место быть - не удается создать дочерний объект для <object>

Код:

  filename = "player.swf";

    p = document.createElement ("PARAM");
    p.name        = "movie";
    p.value        = filename;
    alert (p.outerHTML);
   
    o = document.createElement ("OBJECT");
    o.type        = "application/x-shockwave-flash";
    o.width        = 400;
    o.height        = 320;
    o.data        = filename;
    alert (o.outerHTML);
    o.appendChild (p);
   
    document.getElementById ("div_01").appendChild (o);
    alert (document.getElementById ("div_01").outerHTML);

Данный код работает в опере, но в IE не добавляется вложенный <param>

iNils 31.07.2009 14:13

Для оформления своего кода, надо использовать теги [code][/code].

Ezhy 03.08.2009 16:09

В общем, решение было найдено такое:

В HTML-файле при клике делается:

Код:

_param = 'fname='+encodeURIComponent(PUT_URL_HERE);

document.getElementById (...).innerHTML =  '<object type="application/x-shockwave-flash" width="400" height="320" data="../i/player.swf?'+_param+'"><param name="movie" value="../i/player.swf?'+_param+'"/><p>Please, install flash player!</p></object>';

в флеш-плеере на первом кадре висит:
Код AS1/AS2:

player.contentPath = _root.fname;



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

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