|
|
|||||
Регистрация: Jul 2012
Сообщений: 66
|
обращние к классам, используя "[]"
Здрасте, проблма вообе у меня такая - каждый уровень игры хранится в отедльном элементе библиотеки и принадлежит собственному классу. так вот. сейчас уровней всего два и их загруза меня не волновала.
сделана она через switch: public function loadLevel (num:int) { switch (num) { case 1: curStage = new stage1(); break; case 2: curStage = new stage2(); break; default: trace("error: can't find level- <",num,">"); } я пытался придумать как динамически выбирать класс перебрал все варианты: ну собственно ничего из этого не получилось. есть ли какой-то вариант решения проблемы этим методом? или может есть какой-то более хитрый способ? ps возможно я чайник) |
|
|||||
как вариант getDefinitionByName()
__________________
местонахождение |
|
|||||
или
private var levels:Array = [stage1, stage2, stage3]; public function loadLevel (num:int) { try { curStage = new levels[num](); }catch (err:Error) { trace("error: can't find level- <",num,">"); } } с массивом классов это это будет как бы само собой |
|
|||||
Регистрация: Jul 2012
Сообщений: 66
|
спасибо за ответ. но что-то не очень могу понять смысл этой функции=\
Возвращает ссылку на объект класса, заданного параметром name - не очень понимаю это описание... неточное какое-то |
|
|||||
>> Возвращает ссылку на объект класса, заданного параметром name
Последний раз редактировалось silin; 26.11.2012 в 15:39. |
|
|||||
Небольшая опечатка
|
|
|||||
Регистрация: Jul 2012
Сообщений: 66
|
здорово) спасибо огромное) это то что нужно)
|
|
|||||
Да можно было и свитчь оставить - он же один на всё приложение.
Какая разница как перечислять - в столбик или в линию. Совсем ничего не придется делать при getDefinitionByName, но стоит ли так загоняться ради экономии 20 строчек? Свитч источник проблем, когда их, _похожих_, больше 2-х в разных частях приложения, причём нехилый. Но не когда он один. Не, если загоните в массив хуже тоже не будет. А вот с getDefinitionByName я бы не баловался. А то так класс переименуете и будете думать почему всё отвалилось и какой класс надо переименовать обратно. |
Часовой пояс GMT +4, время: 00:12. |
|
« Предыдущая тема | Следующая тема » |
|
|