Воскресенье, 17 Ноября 2024, 19:44

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
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'ов для хранения структур данных или я тебя не правильно понял =(
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг