Взаимодействие с ActionScript 3.0 с использованием JavaScript - PullRequest
1 голос
/ 20 января 2009

Как видно из названия ... Я пытаюсь взаимодействовать с actionScript моего флеш-фильма через javascript. В частности, я пытаюсь отправить текст в мой флэш-фильм. Я сталкивался с парой сайтов, у которых было несколько прохождений, но я на всю жизнь не мог заставить их работать.

с сайта Adobe. http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15683&sliceId=1

действительно крутая вещь в том, что их ссылка на скачивание исходного файла мертва. и наткнулся на другой пост:

http://www.jesuscarrera.info/2009/01/05/communication-between-actionscript-3-and-javascript/

Загрузка работает ... за исключением того, что файл fla пуст и при запуске html-страницы вы можете получать текст из флэш-фильма ... но вы не можете отправить текст из html во флэш-фильм.

Я внимательно следил за шагами, кто-нибудь может увидеть что-то не так с инструкциями на сайте Adobe? И если ЛЮБОЙ сможет помочь мне, вы могли бы опубликовать исходный пример этой функции? Спасибо всем за ваше время!

Ответы [ 3 ]

4 голосов
/ 20 января 2009

немного больше поиска принесло:

http://blog.circlecube.com/2008/02/01/actionscript-javascript-communication/

:) надеюсь, это поможет кому-то еще.

2 голосов
/ 20 января 2009

Пример, который вы опубликовали, использует класс ExternalInterface для связи из Flash в Javascript. Вы можете добавить обратные вызовы, используя ExternalInterface, но если вам нужно вызвать функцию из DOM (HTML), которая переходит во FLASH.

Хорошо, теперь для получения значений из Javascript во Flash есть несколько вариантов.
Вы можете настроить функцию обратного вызова, используя класс ExternalInterface. Вот пример из Live Docs текст ссылки

Если вам нужно вызвать Flash из Javascript без ЛЮБОГО взаимодействия с Flash (например, для воспроизведения видео или чего-то еще), вы снова будете использовать ExternalInterface. Вот пример AS3 текст ссылки

Вот пример AS2, чтобы ответить на ваш вопрос:

//AS2
import flash.external.*;
function helloWorld():Void
{
    //Do something
}
ExternalInterface.addCallback("myFunction", helloWorld);

// HTML
<script language="JavaScript">

    flashObject.myFunction();
</ script>
...
<object id="flashObject"...>
    ...
    <embed name="flashObject".../>
</object>
1 голос
/ 06 февраля 2009

Недавно пришлось поработать над этим и обнаружил, что эта статья очень помогла:

http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15683

...