我是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文件链接。
或者还有其他办法吗?请帮帮我。
感谢adcance。
答案 0 :(得分: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 bridge”
答案 1 :(得分:0)
除了@bFunc提到的内容之外,如果可能的话,我可能会建议在锚标记之外进行onclick
事件。我发现最好定位通过JS接收动作的元素,而不是嵌入HTML代码中。这样,您可以将flashObj.changeText
调用包装在try/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.
}
}
希望它有所帮助!