1

我正在尝试在使用 JQuery 时编写一个简单的 flash mp3 播放器,它是 SWF 对象插件。我正在使用以下代码向页面添加 swf:

$("body").append("<div id='player_external' style='position:absolute;top:0;left:0;height:1px;width:1px;'></div>");
$('#player_external').flash({swf:"player_external.swf",wmode:"transparent",height:1,width:1,AllowScriptAccess:"always"});

播放器应该是与 javascript 交互的不可见的单像素对象。当我从 Flash 对象(使用ExternalInterface.call())中调用 javascript 函数时,它工作正常。

但是当我尝试从 JavaScript 调用 ActionScript 函数时,什么也没有发生。我添加了一个这样的回调函数:

ExternalInterface.addCallback("MyFunc",MyFunc);

我已经尝试了我在互联网上找到的所有可能的方法。喜欢:

$('#player_external').context.MyFunc();
$('#player_external').flash("MyFunc()"); //this just crashes browser!

此外,在此处找到的解决方案:当 .swf 被 jQuery 引用时,如何调用 Actionscript 函数?没有帮助。我放弃了对此的希望。也许在没有 JQuery 帮助的情况下使用 flash 会更好。但是应该有一些方法可以做到这一点。

谢谢。

4

3 回答 3

2

只需附加一个 id 参数,这样您就可以直接访问 Flash 对象:

$('#my_container').flash({
    swf: 'swf/test.swf',
    width: 740,
    height: 110,
    wmode: 'transparent',
    allowScriptAccess:'always',
    id:'my_flash',
    flashvars: {}
});

// Use document.getElementById NOT $("#my_flash") 
document.getElementById("my_flash").myInternalFlashFuctionName('Foo');
于 2011-11-17T13:41:48.857 回答
2

尝试$('#player_external').get(0).MyFunc();

于 2010-10-01T09:49:13.367 回答
0

使用$('#myContent').get(0).method()对我有用。使用数组引用来获取第一项也可以:$('#myContent')[0].method()

我正在使用“动态”swfobject 注入。

于 2010-10-02T02:44:44.033 回答