Вызов ExternalInterface вылетает из браузера - PullRequest
1 голос
/ 20 января 2011

В Actionscript 3 я звоню в Javascript, используя:

ExternalInterface.call('javascriptFunction');

Если в Javascript произошла ошибка или вызов блокировки, весь браузер зависнет. Я не могу использовать Firebug в Firefox для его отладки, потому что пошаговое выполнение обратного вызова также приводит к сбою браузера. Как мне отладить это?

function javascriptFunction() {
   alert('called from AS3');
   // OR
   nonExistent.madeUp();
}

В Actionscript 3 я вызываю Javascript, используя:

ExternalInterface.call('javascriptFunction');

Если в Javascript произошла ошибка или вызов блокировки, весь браузер зависнет. Я не могу использовать Firebug в Firefox для его отладки, потому что пошаговое выполнение обратного вызова также приводит к сбою браузера. Как мне отладить это?

function javascriptFunction() {
   alert('called from AS3');
   // OR
   nonExistent.madeUp();
}

Hello! Надеемся, что эта дополнительная информация поможет сохранить этот вопрос живым :). Я использую Actionscript 2 с Flash Multimedia Professional 8, и я также получаю эту ошибку с Firefox. Я импортирую flash.external.ExternalInterface, и я использую две функции:

    //confirmation dialog
        function confirmationDialog(mesg:String) {
            return ExternalInterface.call("confirm", mesg);
        }
   //alert dialog
        function alertDialog(mesg) {
            return ExternalInterface.call("alert", mesg);
        }

Мой код, вызывающий каждую функцию, всегда выглядит примерно так ...

//if i need an alert to continue on the page
if (abc == ''){
    alertDialog("Message Here");
    return;
}
//if the user has the option of continuing or returning
if (abc2 == 'hello') {
    var response = confirmationDialog("New Message Here");
    if (colorChoise == false){
        return;
    }else{
    //do nothing and continue forward
    }
}

Я нахожусь на рабочем столе HP с Windows 7, Firefox 5.0, IE9 и Chrome 12.0.742.122. Любой тревожный вызов случайным образом заставляет Firefox зависать ... это обычно происходит в пакетах, где он будет несколько раз непрерывно зависать (очевидно, каждый раз перезапуская Firefox) ... и затем останавливаться на несколько часов и все будет в порядке. Это все еще не дает сбой IE9 или Chrome, хотя я не тестировал его так широко с Chrome. Использование консоли Firefox не помогает, поскольку Firefox просто вылетает все вместе. Если бы кто-нибудь мог пролить свет на это, это было бы здорово!

Ответы [ 2 ]

2 голосов
/ 09 мая 2011

Я только что столкнулся с этой ошибкой, и кажется, что это ошибка в самом Firefox. Это, вероятно, будет исправлено в следующем выпуске патча. Проконсультируйтесь Firefox Bug 648935 .

Я бы следовал совету Мартина, приведенному выше, также в IE9 вы можете использовать F12, чтобы вызвать «Developer Toolbox» для доступа к консоли, так же как Firebug.

0 голосов
/ 20 января 2011

Вы пробовали его в другом браузере с возможностями отладки, такими как Chrome или Safari?Это может пролить свет на вашу проблему, если они не рухнут, как Firefox.

Вы также можете попробовать другую версию Firefox, может быть, более старую версию, установленную на виртуальной машине, может быть ... возможно, это не даст сбой.

Вы также можете попробовать другую версию флеш-памяти и посмотреть, исправит ли это.

В целом, тестирование вашего кода в нескольких браузерах и на нескольких версиях flash принесет пользу как вам, так и пользователям вашего сайта.

Наличие множества браузеров во многих версиях с множеством версий плагинов, установленных вХорошая практика - это набор небольших виртуальных машин, которые вы можете использовать для тестирования и запуска своего кода, когда вам это нравится, или в подобных ситуациях:)

Если ничего из этого не помогло, забудьте об этом,просто console.log - это дерьмо из всего, что может случиться, и посмотри, что выйдет последним до того, как браузер выйдет из строя - он должен, по крайней мере, дать вам подсказку о том, где он идет не так, если нет, что на самом деле делает его аварийным;1011 *

...