1

От кнопки во Flash Я просто хочу вызвать функцию, написанную в jQuery.
Когда я помещаю функцию вне jQuery $ (document) .ready он отлично работает:
* btw Я использую SWFObject для вставки Flash.Flash AS3 ExternalInterface вызов функции внутри документа jQuery ready

AS3:

import flash.external.ExternalInterface; 
function test_fnc(event:Event):void { 
    ExternalInterface.call("jsFunction", "hello world"); 
} 
test_mc.addEventListener("click", test_fnc); 

JS:

<script type="text/javascript">  
    function jsFunction(words) { 
     alert(words); // "hello world"; 
    } 
    $(document).ready(function() { 
     // not from here 
    }); 
</script> 
+0

Это действительно непонятно, о чем вы просите. Зачем вам нужно определять функцию из $ (document) .ready? – spender

+0

мне нужен доступ к массиву, созданный с JQuery:. \t \t \t \t вар alt_array = $ ("# Эскизы IMG") карта (функция() { \t \t \t \t \t возвращение $ (это) .attr ("альт "); \t \t \t \t}); – FFish

ответ

1

В то время вспышки делает вызов jsFunction он не определен. У вас есть состояние гонки, когда $(document).ready стреляет после вызова ExternalInterface, поэтому все, что определено в пределах $(document).ready, еще не было выполнено и, следовательно, будет недоступно в момент, когда Flash делает вызов.

В ответ на ваш комментарий:

Вам нужно как вспышка, чтобы быть готовым, и документ будет готов для этого работать. Я не уверен, что порядок инициализации гарантирован, поэтому я бы посоветовал вам вызвать известную функцию из Flash, которая сообщает JS, что она готова. Возможно, что-то вроде этого:

var waitingForItems=2; 
function itemReady() 
{ 
    //called from both Flash and $(document).ready 
    --waitingForItems; 
    if(waitingForItems==0) 
    { 
     //create your array 
     //send to Flash by calling Flash rather having Flash call JS 
    } 
} 
$(document).ready(function(){ 
    itemReady(); 
}); 
+0

спасибо за ответ spender. В конце и увидел свет. Я просто определил var alt_array за пределами doc.ready и смог получить доступ к массиву из Flash. Теперь мне все же нужно заставить его работать с IE7. – FFish

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