gpt4 book ai didi

javascript - 外部接口(interface)回调不起作用

转载 作者:行者123 更新时间:2023-11-30 18:37:13 25 4
gpt4 key购买 nike

我试图从我的 JavaScript 调用我的 ActionScript 中的一个函数,我已经成功地用另一个 Flash 文件做到了这一点,但在当前的文件中由于某种原因它失败了。我正在使用 jQuery SWFEmbed,这是我的 JS 代码:

$.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 回调,我将不胜感激。

最佳答案

  1. 也许您用于查找 SWF 对象的 Jquery 选择器有误。你为什么不尝试做换一种方式,只是为了调试?
  2. 也许您在 SWF 完全加载之前调用了 AS3 函数。为什么不尝试将该函数调用 (callIt) 放入 Ajax 外部的按钮中,然后在调用警报后按下它?

要在你的回调函数中接收一个参数,只需通过 JS 发送它,并在你的回调函数中将其作为参数接收。例如:

$('.player.active > object')[0].callIt("LOLSOME")

...

ExternalInterface.addCallback("callIt", test);
private function test(arg:String):String {
return "param received from JS: " + arg;
}

关于javascript - 外部接口(interface)回调不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7909630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com