apache-flex - 有没有办法将另一个类的成员函数作为参数传递给as3中的函数?

标签 apache-flex actionscript-3 actionscript flex3

例如,我在 A 类中有一个函数:

    private function functionA(f:Function):void
    {
        var objB:B;
        objB.f();
    }

有没有办法将 B 类的非静态公共(public)成员函数作为参数传递给 functionA? (当然是A类里面) 我知道 c++ 中存在这样的语法,但不确定你是否可以在 flex/as3 中做到这一点

最佳答案

当然:

var a : A = new A();
var b : B = new B();

a.functionA(b.functionB);

...

private function functionA(f:Function):void
{
    f();

    // or

    f(1, "hi");
}

与函数关联的实例随它携带。如果您需要在不同的实例上调用该函数,请调用 f.apply(instance, [1, "hi"])

AS3 没有委托(delegate)或函数签名作为类型的概念,因此您需要知道要传入的参数。

关于apache-flex - 有没有办法将另一个类的成员函数作为参数传递给as3中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6144222/

相关文章:

windows - Spark WindowedApplication,监听keyUp事件

android - 无法使用 AIR 删除 Android 手机上的媒体文件

flash - flash.media.Sound.play需要很长时间才能返回

apache-flex - 如何在 ActionScript 类中实现数据绑定(bind)?

actionscript - 如何使用actionscript从xml树中提取值

performance - 对于 VS Foreach on Array 性能(在 AS3/Flex 中)

apache-flex - 如何在Java中使用AIR 2.0 NativeProcess API?

apache-flex - 包和 MXML 组件

flash - 在 FF 中,按键滞后于鼠标

actionscript-3 - 我不断从 AS3 中的 youTube API V3 收到 404