我需要ActionScript Proxy可以转换为特定的接口。
以下是没有界面的示例:
public dynamic class Tracer extends Proxy {
flash_proxy override function callProperty(method:*, ... args):* {
trace(method + " " + args)
}
}
var t:* = new Tracer()
t.sayHello("123") // prints: "sayHello [123]"
现在我需要“t”成为Talker类型(不要问为什么,我只是喜欢静态打字):
public interface Talker {
function sayHello(s:String):void
}
var t:Talker = new Tracer() // throws class cast exception
t.sayHello("123")
问题是:如何投射代理?
例如,Java的解决方案是在创建新代理时传递接口列表http://download.oracle.com/javase/6/docs/api/java/lang/reflect/Proxy.html
使用ActionScript 3真的可以吗?
答案 0 :(得分:2)
遗憾的是,在简单的动作中,这是不可能的。但我认为你可以用as commons bytecode API来做到这一点。
答案 1 :(得分:0)
用所有需要定义的方法声明public dynamic class Tracer extends Proxy implements Talker
怎么办?