2

我是 FDT 的新手,我想将 javascript 变量值传递给 FDT 代码。我不知道该怎么做。

HTML 代码:

<a id="player" href="javascript:void(0)" data-id="02">ABCD</a>

Javascript代码:

$('.list a').click(function(){ 
  var id = $(this).data("id");
}

在 FDT 中,ID 为 02 的 SWF 文件链接。

或者有没有其他方法可以做到这一点?请帮我。

预先感谢。

4

2 回答 2

2

您需要在 swf 中使用 ExternalInterface 来捕获来自 javascript 的函数调用

import flash.external.ExternalInterface;

if (ExternalInterface.available){
    ExternalInterface.addCallback("changeText", changeTheText); 
}

function changeTheText(t:String):void {
    txtText.text = t;
}

JavaScript 代码

var flashObj = document.getElementById('flashObject');
<a href="#" onClick="flashObj.changeText('it works!');">Click me!</a>

此处示例: http ://www.hardcode.nl/archives_155/article_334-call-javascript-function-from-as3-and-viceversa.htm

在谷歌上搜索“javascript/as3 桥”

于 2013-05-10T13:34:02.907 回答
0

除了@bFunc 提到的内容onclick之外,如果可能的话,我可能会建议在锚标记之外进行您的活动。我发现最好针对通过 JS 接收动作的元素而不是嵌入在 HTML 代码中的元素。这样,您可以将flashObj.changeText调用包装在 atry/catch中以避免 JS 错误(可能发生),并适当地处理错误(即,如果您的 SWF 不可用或未加载,例如当用户没有安装 Flash Player 时)。

例如:

HTML 代码:

<a id="flash_bridge_link" href="#" onclick="javascript:void(0)">Click Me</a>

Javascript:

var flashLink = document.getElementById("flash_bridge_link");
var flashObj = document.getElementById("flashObject");
flashLink.onclick = function () {
    try {
        flashObj.changeText("it works!");
    } catch (error) {
        // Handle error as needed.
    }
}

希望能帮助到你!

于 2013-05-10T13:50:25.947 回答