Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.05.2015, 16:11
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 1  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
По умолчанию Нужный массив в качестве параметра

Всем привет. Подскажите со способом.
Есть к примеру 2 массива в классе
Код AS3:
private var arr_1 = [];
private var arr_2 = [];//Значения могут быть любыми
Далее есть функция с параметром id
Код AS3:
function unabme(id:int):void
{
//id от 4-N
if(id == 4)
{
load_arr(arr_1);
}else if(id ==5)
{
load_arr(arr_2);
}
}
Вопрос теперь в следующем. В этой функции идет вызов функции с передачей ссылки на массив в зависимости от параметра id. То есть, если id = 4, мы должны занести в вызываемую функцию массив arr_1 если id = 5 то массив с arr_2 и т.д. Собственно можно было бы сделать через if, но если id будет слишком много, будет куча if и в общем глупая идея так делать. Подскажите более удобный вариант. Надо как-то идентифицировать массивы под ид которые принимаем. Но что-то плохо представляю как это сделать, вернее лучше услышать совет гуру)

Старый 29.05.2015, 16:23
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 2  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Я далеко не гуру, но вижу тут 3 варианта:
1. Используйте switch/case
2. Можно напрямую цеплять нужный массив по передаваемому id
Код AS3:
private var arr_1 = [];
private var arr_2 = [];
 
function unabme(id:int):void
{
    load_arr(this["arr_" + id]);
}
В этом случае естественно последняя цифра в названии массива должна совпадать с id
3. Использовать массив/словарь/объект (выбирайте на вкус нужное) для хранение ваших массивов, выцеплять их оттуда по id.
Пример для массива:
Код AS3:
private var arr_1 = [];
private var arr_2 = [];
 
private var all_arr = [ arr_1, arr_2 ];
 
function unabme(id:int):void
{
     load_arr(all_arr[id])
}
где айди соответственно, является индексом для выцепляемого массива.

P.S. Обратите внимания что вы привели код без типизации, и я примеры написал тоже без нее.

Старый 29.05.2015, 17:57
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 3  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
Спасибо за помощь) Воспользовался первым способом, думаю он будет лучше)

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:55.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.