代码之家  ›  专栏  ›  技术社区  ›  Steven Mercatante Dimitri Kopriwa

当jquery引用.swf时,如何调用actionscript函数?

  •  2
  • Steven Mercatante Dimitri Kopriwa  · 技术社区  · 15 年前

    我有一个.swf,使用jquery swf对象插件嵌入到HTML中。( http://jquery.thewikies.com/swfobject )我在.swf中有许多函数需要在javascript函数中调用。我已经通过调用flash.external.externalInterface.addCallback()使这些actionScript函数可供javascript访问。但是我打电话的时候什么也没发生。我以前就有过这种情况,当您引用jquery中的.swf时,您不能调用flash函数。是否有这样的问题(除了不使用jquery)?

    谢谢。

    4 回复  |  直到 13 年前
        1
  •  1
  •   FrozenCow    14 年前

    我也有同样的问题。你可以使用 $('#myflashelement').context.myactionscriptfunction(arg) 修复它。 为了方便起见,我做了一个jquery“插件”来调用它们,并且不依赖于 context 在我所有的代码中:

    (function ($) {
        $.fn.callAS = function() {
            var func = arguments[0];
            var args = Array.prototype.slice.call(arguments, 1);
            return this.context[func].apply(this.context, args);
        };
    })(jQuery);
    

    你可以打电话给 $('#myflashelement').callAS('myactionscriptfunction', arg) .

        2
  •  3
  •   DonutReply    15 年前

    我从来没有使用过jquery swfobject插件,但是如果在嵌入代码中添加id参数,就可以通过

    swf = document.getElementById("player"+i);
    swf.callToFlash();
    
        3
  •  1
  •   zh.    13 年前
    $('#myflashElement')[0].myASFunction(var1, var2);
    

    为我工作

        4
  •  0
  •   Joey Blake    15 年前
    $('#id_you_gave_swfobject').your_externalInterface_callback();
    

    在jQuery中