Javascript: метод обратного вызова Flash сначала выдает ошибку UNLESS alert ()? - PullRequest
0 голосов
/ 11 января 2010

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

private function init():void
{   
    ExternalInterface.addCallback( "playVideo", playVideo );
}

private function playVideo(videoSource:String):Boolean
{
    videoDisplay.source = videoSource;
    return true;
}

Я называю это с помощью javascript следующим образом:

function showVideo(video)
{
    document.getElementById("video_overlay").style.display = "block";
    //alert('no error');
    document.getElementById("MiniMacVideoPreview").playVideo('https://www.kranichs.com/instore/minimac/videos/'+video);
}

Я получаю эту ошибку JavaScript:

Объект не поддерживает это свойство или метод.

Однако, если я раскомментирую и сначала запущу оповещение. Я не получаю ошибки, и она отлично работает.

Моей первой мыслью было, что оповещение выигрывает время, пока скрипт не сможет исполниться, поэтому я попытался запустить скрипт внутри setTimeout (), но не сработало.

Есть идеи?

Спасибо!

1 Ответ

2 голосов
/ 11 января 2010

Я бы попробовал поместить ваш код в что-то вроде jquery's $(window).load функция. У меня такое ощущение, что ты совершенно прав. К тому времени, когда вы закроете предупреждение, dom и его содержимое будут загружены, и вы сможете создать метод обратного вызова ExternalInterface.

$ (окно) .load

В противном случае, если вы используете swfobject, вы можете сделать что-то вроде

swfobject.addLoadEvent(function() {
   $("#swf_id").get(0).inited(callSomeOtherFunction()); 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...