Показать сообщение отдельно
Старый 27.09.2011, 16:20
flax4Noob вне форума Посмотреть профиль Отправить личное сообщение для flax4Noob Найти все сообщения от flax4Noob
  № 9  
Ответить с цитированием
flax4Noob

Регистрация: Jan 2011
Сообщений: 70
Цитата:
Сообщение от Котяра Посмотреть сообщение
Ну сделайте алиасы свои
ну или воспользуйтесь стандартными 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".

Затея такова, что мне совершенно не хочется переписывать методы загрузки/сохранения при дальнейшей модификации.


Последний раз редактировалось flax4Noob; 27.09.2011 в 16:28.