0

在 Actionscript 中是否有可能发生这样的事情?

爪哇:

URLFetcherFactory.setCreator(
    new IURLFetcherCreator() {
        public IURLFetcher create() {
            return new URLFetcher();
        }
    }
);

动作脚本:

?

我一直想知道这一点,并且无法找到任何表明它可能的东西。想如果可能话,我可以在这里找到答案。谢谢!Stackoverflow 摇滚!

4

3 回答 3

0

试试这个:

URLFetcherFactory.setCreator(
    new IURLFetcherCreator() {
            public function create():IURLFetcher  {
                    return new URLFetcher();
            }
    }
);
于 2009-08-14T19:14:00.867 回答
0

您不能创建接口的实例。但是,您可以创建一个工厂类:

public class URLFetcherCreator : IURLFetcherCreator {
    private var _cls : Class;

    public URLFetcherCreator(Class cls) {
        this._cls = cls;
    }

    public function create() : IURLFetcher
    {
        return new cls();
    }
}

或者,更改 setCreator 以接受返回 IURLFetcher 的函数:

URLFetcherFactory.setCreator(
    function() : IURLFetcher {
        return new URLFetcher();
    }
);
于 2009-08-14T20:33:56.493 回答
0

您不能在 AS3 中使用匿名内部类。对于回调等特殊情况,您可以使用 Function 而不是匿名内部类。

爪哇:

interface Callback {
     void done(String info);
}
class Service {
     void process(Callback callback);
}
...
myService.process(new Callback() {
     void done(String info) {
          // trace(info);
     }
}

AS3:

class Service {
     public function process(callback:Function):void;
}
...
myService.process(function(info:String):void {
     trace(info);
});
于 2013-03-14T12:33:30.383 回答