我想從我的JavaScript中調用ActionScript中的函數,我已經成功地用另一個Flash文件做到這一點,但在當前的一個由於某種原因失敗。我使用jQuery SWFEmbed,這是我的JS代碼:ExternalInterface回調不起作用
$.ajax({
url: '<?php echo $html->url(array('controller' => 'voicenotes', 'action' => 'get_url'), true);?>' + '/' + container.children('#VoicenoteVnid').val(),
dataType: 'json',
type: 'POST',
success: function(response) {
container.children('.voicenote-info').children('.player').addClass('active');
flashMovie = container.children('.voicenote-info').children('.player');
alert(flashMovie.html());
flashMovie.flash({
swf: '<?php echo $html->url('/files/flash/reproductor_compact.swf',true); ?>',
width: 240,
height: 40,
quality: "high",
wmode: "transparent",
allowscriptaccess: "always",
});
alert($('.player.active > object')[0].callIt());
}
});
這裏是我的AS代碼,這是我的構造函數:
public function reproductor()
{
ExternalInterface.addCallback("callIt", test);
ExternalInterface.call("alert", "Que fue?");
trace(ExternalInterface.available);
}
這是我的函數:
private function test():String {
return "this is a test";
}
ExternalInterface.call工作,跟蹤輸出爲真,我不知道發生了什麼。
P.S:如果您還可以告訴我如何將參數傳遞給ExternalInterface回調,我會很感激。
以下[堆棧溢出答案](http://stackoverflow.com/questions/7657842/how-to-call-flash-actionscript-callback-method-from-javascript/7657994# 7657994)可能包含導致您的具體問題。 –