Как сделать так, чтобы flash cs3, actionscript отправлял события в javascript? - PullRequest
5 голосов
/ 02 сентября 2008

Я использую Flash для воспроизведения видеоклипа .flv на своем сайте, но я хочу, чтобы .swf send вызывал событие в моем javascript, когда он начинает загружаться, начинает играть и заканчивает играть.

Какой лучший способ сделать это во Flash CS3 с использованием Actionscript 3.0?

Ответы [ 3 ]

5 голосов
/ 02 сентября 2008

Вам необходимо использовать флэш-переменную allowScriptAccess в HTML. Вы, вероятно, хотите использовать "sameDomain" в качестве типа. Обратите внимание, что если вы работаете с кросс-доменом, вам также необходимо разместить на сервере специальный файл с именем 'crossdomain.xml', который включает такие сценарии (это проверяет флэш-плеер. Подробнее на http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14213&sliceId=2

Звонок - самая легкая часть. :-) Во Flash-коде вы будете использовать ExternalInterface для выполнения вызова, как описано здесь:

http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001655.html

Короткая версия: вы говорите

ExternalInterface.call ("javascriptFunction", "аргумент")

4 голосов
/ 02 сентября 2008

Обычный способ сделать это - использовать класс ExternalInterface , который можно использовать для вызова методов JavaScript.

Сначала определите ваши методы JavaScript, например:

<script language="JavaScript">
    function startsPlaying()
    {
        // do something when the FLV starts playing
    }
</script>

Затем измените ваш ActionScript для вызова метода JavaScript в соответствующее время:

// inform JavaScript that the FLV has started playing
ExternalInterface.call("startsPlaying");

Для получения дополнительной информации см. Соответствующую документацию по Flash CS3 .

2 голосов
/ 25 февраля 2009

, если вы не хотите загружать

import flash.external.*;

так что вы также можете сделать

getUrl("javascript:startsPlaying();");
...