Как привести Прокси к интерфейсу? (или скажите Прокси для реализации интерфейса) - PullRequest
1 голос
/ 30 января 2011

Мне нужно, чтобы 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?

Ответы [ 2 ]

2 голосов
/ 30 января 2011

К сожалению, это невозможно в простом скрипте действий. Но я думаю, что вы можете сделать это с как байт-код API .

0 голосов
/ 30 января 2011

как насчет объявления public dynamic class Tracer extends Proxy implements Talker всеми методами, которые должны быть определены?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...