Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   управление проигрыванием из js (http://www.flasher.ru/forum/showthread.php?t=120510)

zzz_dmg 22.01.2009 17:18

управление проигрыванием из js
 
стоит следующая задача. есть прозрачная флешка, в которой находится только звук. есть ссылка. по нажатию на ссылку флешка должна проиграться. я так понимаю идет ее управление через js... как это все реализовать и прописать???

Azo 26.01.2009 16:30

выкладывай, посмотрим на неё все вместе ;-)

hipot 27.01.2009 21:47

ну тут надо код писать/выполнять уметь.
JavaScript и AS3 (1,2) минимум.
Вообще тема пахнет программированием, поэтому ее надо переносить в соответствующие разделы (в зависимости от того, на какой версии AS будет реализация)

вот как это делается на AS3 (на AS1,2 не помню как):

Вызов JavaScript из флеш:
делаем функцию JS на HTML странице, напр.
Код:

<script language="JavaScript">
    function changeTitle(title) {
        if(title == undefined) {
            title = "New Title";
        }
        window.title = title;
    }
    function getTitle(  ) {
        return window.title;
    }
</script>

Затем во флеш вызываем AS3 метод call класса ExternalInterface
Код AS1/AS2:

var title:String = ExternalInterface.call("getTitle");
ExternalInterface.call("changeTitle", "ActionScript 3.0 Exam"); //передаем значение параметра в JS

также есть и такой способ (опять же AS3)
Код AS1/AS2:

var request:URLRequest = new URLRequest("javascript:alert('example');");
navigateToURL(request);

Вызов ActionScript3 функций(методов) из JavaScript.

необходимо написать функцию(метод) as3 и разрешить его использование извне при помощи

Код AS1/AS2:

function displayMessage(mess:String):void {
  //..что-то тут делаем
}
ExternalInterface.addCallback("showMessage", displayMessage);
/*showMessage - так будет называться метод в JS*/

Затем на HTML странице, напр. так:
Код:

<script language="JavaScript">
var flashPlayer;
function detectFlashPlayer(  ) {
    if(navigator.appName.indexOf("Microsoft") != -1) {
        flashPlayer = window.objectId;
    }
    else {
        flashPlayer = window.document.embedName;
    }
}
detectFlashPlayer();
flashPlayer.showMessage("example message");
</script>


из-за особенностей политики безопасности плеера, это работает только при обращении к странице в виде
http://sitename.ru/somepage.html
т.е. на веб-сервере, а не просто открыть html с жетского диска.

zzz_dmg 28.01.2009 01:03

hipot спасибо


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

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