【问题标题】:Trigger jquery with flash用 flash 触发 jquery
【发布时间】:2010-11-08 16:00:57
【问题描述】:

我想知道是否可以触发一个 jquery 函数来在 flash 中的鼠标事件之后隐藏某些东西。

我希望它在 Flash 中单击某些内容时运行:

  $("#googframe").click(function() {
    $("#googframe").hide();
  });

我知道如何监控 AS3 中的点击,但我如何让它触发它。顺便说一句,我非常基础,所以非常感谢一个好的解释。

谢谢。

【问题讨论】:

    标签: javascript jquery flash actionscript-3


    【解决方案1】:

    来自此来源:http://codingrecipes.com/calling-a-javascript-function-from-actionscript-3-flash

    在 Actionscript 中尝试:

    import flash.external.ExternalInterface;
    
    ...
    
    ExternalInterface.call("hideFrame");
    

    并将你的隐藏函数放在 JS 中的常规函数​​中:

    function hideFrame() {
       $("#googframe").hide();
    }
    

    【讨论】:

    • 这不起作用。但我认为这是函数,因为当我输入“javascript:hideFlash();”时在地址栏中也没有发生任何事情
    • 好的,这个函数现在可以工作了,但是你调用它的方式没有任何作用
    • 会不会是因为AS3先加载?
    • @Matthew 我用@mway 的说明更新了答案。
    • @Matthew 你跑得怎么样(来自网络的本地)?是 JS 还是 AS 抛出错误/异常?
    【解决方案2】:

    正如@Fosco 所说,使用ExternalInterface,但是语法应该如下:

    在 AS2/AS3 中:

    import flash.external.ExternalInterface;
    ExternalInterface.call('myJsFunction'[, args...])
    

    在 Javascript 中:

    function myJsFunction() {
        ...
    }
    

    第一个参数之后的其余参数是要调用的函数的参数(参数列表、可变参数等)。

    所以,举个例子:

    AS2/AS3:

    ExternalInterface.call('addIntegers', 1, 2);
    

    JS:

    function addIntegers(a, b) {
        doSomethingWith(a + b);
        // etc.
    }
    

    【讨论】:

    • 对此有两点说明。 IE7 和可能的 6 需要在对象上设置 ID 才能使其工作。如果调用引发异常,您可能需要使用 allowScriptAccess 进行操作(您应该始终将 EI 调用放在 try/catch 中)。
    • 确实,重要的警告。感谢您添加这些。另外,需要注意的是:必须使用 HTML ID 并设置 allowScriptAccess 不应阻止您使用此方法;这是AS和JS之间正确通信的方式。
    • AS3 JS 事件监听器放在一边,就是这样。
    【解决方案3】:

    在你需要的时候调用这个:

    url = "javascript:hideFlash();"; 请求 = 新 URLRequest(url); 尝试 { navigateToURL(request, "_top"); } 捕捉(e:错误) { trace("发生错误!"); }

    然后为你创建一个名为 hideFlash() 的 JS 函数;

    【讨论】:

      猜你喜欢
      • 2013-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多