Как я могу создать подкласс класса, загруженного из SWF - PullRequest
0 голосов
/ 06 марта 2012

Я хочу создать подкласс «суперкласса» и переопределить одну из его функций.

public class superClass {
    protected function f1(...) : Boolean {...}
    protected function f2(...) : Boolean {...}
    ...
    protected function f100(...) : Boolean {...}
}
public class subClass extends superClass {
    // override f1 in the subclass
    protected override function f1(...) : Boolean {...}
}

Проблема в том, что «суперкласс» загружается из swf.У меня нет ссылки на определение класса в моем проекте.Есть ли способ сделать что-то вроде ниже?

public class subClass {
    private var superClassObject:  Object;

    // construct from an instance of superClass
    public function subClass (s : Object) {
        superClassObject = s;
    }

    private function myF1(...) : Boolean {...}

    override InvokeFunction (fname: string, args: Array) : Object {
        if (fname == "f1") {
            return myF1(args);
        } else {
            return superClassObject.InvokeFunction(fname, args);
        }
    }
}

Я не уверен, как вызов функции реализован в AS.Каким должен быть «InvokeFunction»?

1 Ответ

0 голосов
/ 06 марта 2012

Вы должны использовать .swc, а не .swf.Класс, который вы хотите расширить, должен быть доступен во время компиляции, а не во время выполнения.В любом случае, если использование swf является для вас обязательным, вы можете использовать разные методы для «переопределения» функциональности.Помимо наследования существуют другие концепции ООП (Composition, Aggregation и т. Д.) И шаблоны проектирования (Proxy,Adapter и т. Д.) Для изменения функциональности класса.Вы можете использовать их.

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