Всем здравствуйте! Мне на ум ничего толкового не приходит. может кто подскажет как грамотно сделать.
Попробую объяснить. Есть некий массив данных
Допустим такой:

Код AS3:
var dataList:Array = [ShapeData1,ShapeData2,ShapeData3,...,ShapeData2]
Все они наследуются от ShapeData
Нужна функция, которая возвращает определенный объект Shape в зависимости от типа DataShape
я написал вот такую:

Код AS3:
public static function getShapeByData(_data : ShapeData) : Shape {
if(_data as ShapeData1) return new Shape1(_data);
if(_data as ShapeData2) return new Shape2(_data);
if(_data as ShapeData3) return new Shape3(_data);
.......................................
return new Shape(_data);
}
Но честно говоря не очень как то. Проблема в том, что если допустим Shape3 наследуется от Shape2 - который в свою очередь наследуется от Shape, то в данной функции Shape3 мне не видать как своих ушей, до тех пор пока к примеру я не помещу условие проверки Shape3 выше
Как бы четко определить, что некая ShapeData
именно ShapeData1 или ShapeData3, независимо от их порядка проверки в функции (не зависимо от их наследования).
Или еще может какой выход есть. Я перелопатил весь форум, нашел только
getQualifiedSuperclassName(value:*):String
но он название класса с пекеджем выдает. Это нужно получается еще эту строку обрезать от него, что бы к примеру создать в зависимости от названии ShapeData
Если конечно нет другого выхода, наверно так сделаю.