Ваш пример с DisplayObject является слишком сложным, потому что приходится иметь дело с некоторыми неправильными вещами в AS3. DisplayObject - это абстрактный класс, который вы не можете распространять в коде AS3, самым близким вы можете получить Sprite.
Что касается расширения и, в частности, расширения экранных объектов, я ненавижу звучать как укол, но я бы спросил вас это в любом случае: вы уверены, что действительно хотите этого? Идет множество неприятностей. Наследуя класс, который содержит более 100 методов, вы создаете класс, который потенциально слишком раздутый, с поведением, которое вы вряд ли полностью контролируете или даже понимаете. Это хотя и обычная вещь, которая стоит делать в AS3 (исторически), будет стоить вам дорого с точки зрения разработки и обслуживания. Рассмотрите возможность использования композиции, как было отмечено ранее, или методов полезности, которые специализируются на некоторых аспектах или различиях между вашей версией MovieClip и встроенным.
Однако, в общем, может быть еще один подход, который очень похож на состав, но не совсем тот же. Вы можете думать об этом как о «декораторе», но это не совсем то же самое. Идея состоит в том, что у вас есть класс, который не содержит реализаций методов, вместо этого он ожидает, что реализации будут предоставлены во время выполнения. Рассмотрим приведенный ниже пример:
public class ClassWithDecorator
{
public function ClassWithDecorator(decorator:Vector.<Function>)
{
super();
this._decorator = decorator;
}
public function classMethod(integer:int, string:String):Boolean
{
return this._decorator[0].apply(this, [integer, string]);
}
}
Это позволит вам учитывать разные типы подобных объектов, предоставляя различные наборы методов для каждого класса. Это несколько менее строгое в плане ввода - потому что вы «теряете» тип сигнатуры функции - вы, однако, будете уведомлены во время выполнения, если типы не совпадают. Ну, это компромисс.
Другой недостаток - вы не сможете «прокрасться» в экземпляры этого класса на месте, где требуются определенные предопределенные типы, даже если вы реализуете требуемые методы. Тем не менее, несколько раз это жизнеспособные решения, если количество различных видов объектов возможно велико или не может быть предсказано во время написания кода.
Возможно, вам лучше построить свой класс через композицию, чем наследование. Извините, не так много ответа, поэтому я просто помещаю его в комментарии. –