2013-04-27 5 views
0

Я работаю с JS и AS3, чтобы получить микрофон по умолчанию. Ниже мой HTML кодswfobject.embedswf ExternalInterface.addCallback не работает

JS на голове

 
    $(document).ready(function(){ 
    $("#setupMic").click(function() { 
     try{ 
     document.getElementById('test').setupMic(); 
     } catch(err) { 
     console.log(err.message); 
     } 
    }); 
    }); 
JS после сНа flashContent
 
    var callback = function(e){ if(e.success) console.log("Loading Success"); else console.log("Loading Failed");}; 
    var flashvars = {}; 
    var params = {allowscriptaccess:"always"}; 
    var attributes = {}; 
    attributes.id = "test"; 
    swfobject.embedSWF("test.swf", "flashContent", "220", "140", "10", false, flashvars, params, attributes, callback); 
моего AS3 код
 
    import flash.system.Security; 
    import flash.external.ExternalInterface; 
    var mic:Microphone; 
    Security.allowDomain('*'); 
    ExternalInterface.addCallback("setupMic", setupMic); 
    function setupMic():void { 
    mic = Microphone.getMicrophone(); 
    mic.setLoopBack(true); 
    } 
HTML, прекрасно работает в Firefox. но не с моим хромом или сафари на друзей Mac. что мне не хватает. пожалуйста, помогите

+0

Это связано с некоторой проблемой безопасности. в firefox для работы сначала мне нужно добавить доверенное место в диспетчере настроек проигрывателя. если я сменил местоположение, он тоже не будет работать в firefox. любой задний? – abduIntegral

ответ

0

Возможно, у вас есть проблема с синхронизацией. Flash Player занимает минуту, чтобы инициализировать ExternalInterface. Если вы попытаетесь получить доступ к SWF на domready, возможно, Flash Player не завершил инициализацию ExternalInterface, что означает, что ваш метод setupMic() может быть недоступен.

Я рекомендую запросить SWF, чтобы узнать, закончилась ли загрузка. Вот пример на LearnSWFObject.com: http://learnswfobject.com/advanced-topics/executing-javascript-when-the-swf-has-finished-loading/

+0

Благодарим вас за ответ. это не кажется проблемой. я долго ждал, а затем вызвал setupMic(). Без изменений. Я проверил с приведенным ниже примером загрузки и попытался вызвать setupMic() после предупреждения («SWF закончил загрузку!»); но не работают в chrome, в firefox он отлично работает – abduIntegral

+0

- это из-за некоторой проблемы с безопасностью. в firefox для работы сначала мне нужно добавить доверенное место в диспетчере настроек проигрывателя. если я сменил местоположение, он тоже не будет работать в firefox. любой задний? – abduIntegral

+0

Вы используете его локально или на сервере? ExternalInterface изолирована при локальном запуске, вы должны попробовать протестировать свой сайт на сервере. – pipwerks

 Смежные вопросы

  • Нет связанных вопросов^_^