Цитата:
Сообщение от Котяра
Ну сделайте алиасы свои
ну или воспользуйтесь стандартными getClassByAlias и registerClassAlias
|
Чем это будет хуже создания массива со списком всех имен? Тогда в XML можно хранить индексы из этого массива. Ведь один фик придется для каждого нового объекта прописывать алиасы. А если пойти по этой дорожке, то плавно переходим к варианту 100500 строк в функции. Ведь тогда не надо будет делать два вызова непонятных функций. А сразу создавать объект. Это должно будет побыстрее быть.
вместо

Код AS3:
var testDef:Class = getDefinitionByName(testArray[testIndex]) as Class;
var testResult = new testDef();
придется сделать

Код AS3:
switch (testIndex){
case 1: var testResult = new Sprite();
case 2: var testResult = new MovieClip();
}
Разница при добавлении новых классов минимальна, а работать должно побыстрее. Но все-равно криво. =(( Можно забыть добавить какой-нить класс и вуаля.
Добавлено через 7 минут
Цитата:
Сообщение от -De-
 Код AS3:
protected static var string2Class:Object = {"MyClass1":MyClass1, ""MyClass2":MyClass2};//тут все классы и их названия
|
О. Во. А я же могу этот массив заполнить из XML, используя getDefinitionBName()?
То есть. В XML делаю две секции: описание классов, и само содержимое. Загружая описание, я заполняю массив "string2Class" значениями.
А вторую часть обрабатываю уже функцией "createClassByName".
Затея такова, что мне совершенно не хочется переписывать методы загрузки/сохранения при дальнейшей модификации.