Switch case из массива.
|
|
danone | Дата: Среда, 21 Ноября 2012, 18:28 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Всем привет. Подскажите как можно сделать. Например дан список построек (мельница, касл, дворец и т.д) я с помощью цикла switch case перебираю все значения списка и делаю одно и тоже действие. Но код получается оч большой, скажите можно например как то сделать что бы case считывал из массива или например создать отдельный класс с названиями построек и оттуда считывать по очереди. и как? Code switch type {
case "house" : trace("asd"); case "castle" : trace("asd"); ....................................
Сообщение отредактировал danone - Среда, 21 Ноября 2012, 18:32 |
|
| |
Ghost_in_the_shell | Дата: Среда, 21 Ноября 2012, 18:56 | Сообщение # 2 |
участник
Сейчас нет на сайте
| Code var postroyki:Array = new Array(); //добавление построек в массив for(var i:int = 0; i < postroyki.length; i++) { switch(postroyki[i].type) { case "house" : odnoItojeDeystvie(); break; case "castle" : odnoItojeDeystvie(); break; } } function odnoItojeDeystvie():void { trace("asd"); }
|
|
| |
danone | Дата: Среда, 21 Ноября 2012, 19:13 | Сообщение # 3 |
частый гость
Сейчас нет на сайте
| Плохо объяснил наверно). Нужно например что бы array заранее задан был (house, castle) и т.д. и нужно что бы при switch type, case по очереди выбирался из массива.
|
|
| |
Aed_Mindgart | Дата: Среда, 21 Ноября 2012, 19:55 | Сообщение # 4 |
участник
Сейчас нет на сайте
| Непонятно. У тебя есть массив типа базового класса постройки, в массиве хранятся объекты этого типа или наследника этого класса? Тебе нужно определить какой именно объект находится в определённом месте массива и выполнить какую то функцию в зависимости от типа объекта ?
|
|
| |
TreinDSM | Дата: Среда, 21 Ноября 2012, 19:56 | Сообщение # 5 |
почетный гость
Сейчас нет на сайте
| danone, Все равно не очень понятно, что нужно. Нужно, осуществить пробег по массиву и в зависимости от типа объекта вызвать подходящий метод? Или нужно вызвать некоторый метод над всеми объектами определенного типа?
|
|
| |
danone | Дата: Среда, 21 Ноября 2012, 20:16 | Сообщение # 6 |
частый гость
Сейчас нет на сайте
| Мне приходит ХМл-ка с сервера с названием типом(type) (title), и стоимости постройки(cost). я Выбираю с помощью switch и case type и к нему присоединяю остальные значения и заношу это в переменную building(type:string,title:string,cost:int) . я хочу что бы например если что то изменили в xmle-ке например добавили новое здание тогда, пришедшее мне новое значение type, добавилось в массив(кторый используется для перечисления case) и соответственно новое значение case появилось. case выбирается из массива по очереди.
|
|
| |
TreinDSM | Дата: Среда, 21 Ноября 2012, 20:25 | Сообщение # 7 |
почетный гость
Сейчас нет на сайте
| danone, Новый case сам по себе не появится. Если у Вас в проекте появляется новый тип здания, то его необходимо определить в приложении - описать под него класс, выделить константу типа и т.д. Невозможно добиться уникального поведения для объекта, который не описан в приложении.
|
|
| |
alex_proger | Дата: Суббота, 24 Ноября 2012, 18:46 | Сообщение # 8 |
участник
Сейчас нет на сайте
| помоему тебе нужен массив Object'ов для хранения структур данных или я тебя не правильно понял =(
|
|
| |