2009-09-24 1 views
2

У меня есть .swf, что я внедряю в HTML, используя плагин jQuery SWF Object (http://jquery.thewikies.com/swfobject). У меня есть ряд функций внутри .swf, которые мне нужно вызвать из javascript-функций. Я сделал эти функции actionscript доступными для javascript, вызвав flash.external.ExternalInterface.addCallback(). Но ничего не происходит, когда я звоню. Раньше это случалось раньше, и кажется, что когда вы ссылаетесь на .swf из jQuery, вы не можете вызывать функции флэш-памяти. Во всяком случае, вокруг этого (кроме использования jQuery)?Как я могу вызвать функцию ActionScript, когда на .swf ссылается jQuery?

Спасибо.

+0

вы понять это ли? Мне действительно нужна помощь в этом. –

ответ

1

Я имел та же проблема. Вы можете использовать $('#myflashelement').context.myactionscriptfunction(arg), чтобы исправить это. Для удобства я сделал JQuery плагин «», чтобы назвать их и не полагаться на context всего моего кода:

(function ($) { 
    $.fn.callAS = function() { 
     var func = arguments[0]; 
     var args = Array.prototype.slice.call(arguments, 1); 
     return this.context[func].apply(this.context, args); 
    }; 
})(jQuery); 

Вы можете назвать его $('#myflashelement').callAS('myactionscriptfunction', arg).

+0

Не понимаю. Можете ли вы рассказать об этом? –

3

Я никогда не использовал JQuery SWFObject плагина, но если вы даете добавить параметры идентификатора в коде встраивания вы можете получить доступ к SWF-через

swf = document.getElementById("player"+i); 
swf.callToFlash(); 
0
$('#id_you_gave_swfobject').your_externalInterface_callback(); 

В JQuery

+0

Что вы имеете в виду? –

1
$('#myflashElement')[0].myASFunction(var1, var2); 

работает для меня