代码之家  ›  专栏  ›  技术社区  ›  Kyle Hayes

从flash调用名称空间的javascript函数

  •  1
  • Kyle Hayes  · 技术社区  · 16 年前

    我可以使用ExternalInterface调用名称空间的javascript函数吗?

    //JavaScript
    foo.bar = function(baz) {}
    
    // AS3
    import flash.external.ExternalInterface;
    ExternalInterface.call('foo.bar', baz);
    
    2 回复  |  直到 13 年前
        1
  •  2
  •   Taryn Frank Pearson    13 年前

    文件 ExternalInterface.call 有点误导。它声明第一个参数必须是一个函数名,这不是完整的事实。它可以是任何可以作为proprer js表达式计算的字符串。事实上

    ExternalInterface.call(func, param_1, ... , param_n);
    

    等于

    eval(func)(param_1, ... , param_n);
    

    所以你也可以这样做

    ExternalInterface.call("function (foo) { alert(foo); return true; }","test");
    

    这种技术有时用于 Flash JS injection .希望这能澄清问题…

        2
  •  1
  •   Cory Petosky    16 年前

    对。是的,你可以。

    推荐文章