我有一个似乎无法解决的问题。我正在使用AS3的navigateToURL();函数来调用一个简单的 javascript 函数。目前它只提醒第一个参数。问题是,当这个函数放置在 $(document).ready(function(){..}) block 内部时,它不会触发。我的代码示例:
<script type="text/javascript">
$(document).ready(function(){
function mapLink(aVar){
alert(aVar);
};
});
</script>
简单的 AS3 函数调用示例:
navigateToURL(new URLRequest('Javascript: mapLink("'+mapObject.tooltipMoreLink+'");'), '_self');
当函数放置在 jquery 代码之外时,它可以正常工作。为什么它需要位于您可能会问的 jquery 代码内部?我需要 jQuery DOM 选择器根据 javascript 函数中“aVar”的值来操作某些 dom 元素。
以开放的心态欢迎任何指导。
最佳答案
呃。这就是ExternalInterface类是为.
您的问题与范围有关。您的函数的作用域为 jquery 对象,而不是全局的,因此它对您的调用是不可见的。如果您需要 jquery 选择器,那么您可以轻松地独立设置 flash var,然后设置 jquery 例程。
更新
也许我错过了一些东西,但这不应该像这样简单:
function externalCall(param){
$(domElement).doSomething(param);
}
?
我认为这不需要与 jq read 函数绑定(bind)。我的意思是,如果 Flash 已经加载,并且用户正在交互,那么“当然”ready 事件早已成功触发。
希望有帮助。我不确定我是否完全遵循您想要做的事情;)
... 顺便说一句 - 我真的会研究ExternalInterface,NavToURL可能有效,但你可以用前一种方法直接调用你的js。
关于javascript - AS3 导航ToURL();使用 jQuery 时,javascript 函数不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6612177/