Обратный вызов ActionScript 3 External Interface не работает? - PullRequest
0 голосов
/ 12 июня 2011

Я был бы очень признателен за любую помощь в решении этой проблемы.Я занимаюсь этим уже два дня и не смог решить эту проблему.Я пытаюсь вызвать функцию AS3 из JavaScript через API ExternalInterface, который просто не работает вообще.Если я вызываю функцию JavaScript из html-файла, загруженного SWF, это прекрасно работает.

Я следую этому уроку: http://www.viget.com/inspire/bi-directional-actionscript-javascript-communication/

Я использую swfobject для загрузки SWF в div.

Код JavaScript:

<script type="text/javascript">
swfobject.embedSWF("testRun.swf", "myContent", "550", "400", "9.0.0");

function getFlashMovie(movieName) 
{
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[movieName] : document[movieName];
}

function callFlash(flash) 
{
    //alert(flash);
    getFlashMovie(flash).sendToFlash();         
}   
</script>

Код AS3:

import flash.external.*;
import flash.events.*;
import flash.text.*;

JAVASCRIPT ВЫЗЫВАЕТ ОТКРЫТЫЙ ФЛЭШ, КОГДА ПОТОМ ВЫЗЫВАЕТ ФУНКЦИЮ INIT

ExternalInterface.addCallback("sendToFlash", init);

function init():void
{
var txt:TextField = txtField();
txt.appendText("LOOK AT ME!!!");
addChild(txt);
}

function txtField():TextField
{
var txt:TextField = new TextField();
txt.x = 25;
txt.y = 25;
txt.width = 200;
txt.height = 150;
txt.border = true;
txt.text = "INIT ";
return txt;
}

1 Ответ

1 голос
/ 12 июня 2011

Через несколько часов мне удалось решить проблему. В моем коде не было ничего плохого, виновником были настройки безопасности флеш-плеера на моей локальной машине. Вместо того, чтобы просто добавить swf на мои доверенные сайты с настройками flash play, я включил всю папку, и теперь она работает как шарм.

Вот как я изменил настройки:

Вы можете пойти двумя способами изменить настройки: 1. при открытии html-файла открывается окно глобальной безопасности флэш-плеера 2. Откройте HTML-файл, щелкните правой кнопкой мыши и выберите «Глобальные настройки ...» в контекстном меню.

Когда панель настроек открыта, вы увидите четыре вкладки:

Хранение | Камер и Мик | Воспроизведение | Дополнительно

Перейти на вкладку «Дополнительно» Нажмите «Доверенные локальные настройки ...» Нажмите «Добавить ...» Нажмите «Добавить папку ...» Найдите папку, в которой находятся ваши файлы, такие как html и swf. Нажмите «Подтвердить» Нажмите «Закрыть»

А затем закройте панель глобальных настроек Flash Player

Теперь откройте HTML-файл, если он уже открыт, обновите браузер. Теперь все должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...