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

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

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
По умолчанию как создать уникальный ключ для Dictionry

суть вопроса в следующем:

по нескольким аргументам, передаваемых в метод сформировать запись в Dictionary c уникальным ключом, по которому потом можно будет обратиться к записи.

в случае с массивом можно рекурсивно обойти и найти запись, но идея не очень нравится.

Код AS3:
setValue(param1,param2){
dictionary[uniqiueKey(param1,param2)] = someObject();
}
getValue(param1,param2):SomeObjectClass{
return dictionary[uniqiueKey(param1,param2)];
}
собственно, вопрос в uniqiueKey
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 12.02.2010, 19:26
mayakwd вне форума Посмотреть профиль Отправить личное сообщение для mayakwd Посетить домашнюю страницу mayakwd Найти все сообщения от mayakwd
  № 2  
Ответить с цитированием
mayakwd
 
Аватар для mayakwd

Регистрация: Jul 2008
Адрес: t:2, x: 0.76
Сообщений: 553
Отправить сообщение для mayakwd с помощью ICQ Отправить сообщение для mayakwd с помощью Skype™
добавить в типы param1, param2 уникальные идентификаторы например id

Код AS3:
function unqiueKey (param1 : Object, param2 : Object) : String {
  return MD5.encode (param1.id.toString() + "_" +param2.id.toString());
}
грубо говоря.
__________________
Блог, Twitter
Брюзга.

Старый 12.02.2010, 19:38
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 3  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
тут немного не тот случай..
у меня есть оверрайд addEventListener. вот один из параметров имеет тип Function )
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 12.02.2010, 20:17
FlashRabbit вне форума Посмотреть профиль Отправить личное сообщение для FlashRabbit Найти все сообщения от FlashRabbit
  № 4  
Ответить с цитированием
FlashRabbit
 
Аватар для FlashRabbit

Регистрация: Jul 2009
Сообщений: 93
Думаю Vector.<ValueObject>+перебор тут лучший вариант, не стоит изощрятся на всякие идентификаторы.

Старый 12.02.2010, 21:03
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 5  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
мде...придется перебирать
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 12.02.2010, 21:44
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 6  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
ну можно в духе вложенных массивов сделать:

Код AS3:
function getObject(key1, key2)
{
    var subDictionary = _dictionary[key1];
    if (subDictionary == null)
   {
        retunr null;
    }
    else
    {
        return subDictionary[key2];
    }
}
 
function setObject(key1, key2, value)
{
     var subDictionary = _dictionary[key1];
    if (subDictionary == null)
   {
        subDictionary == new Dictionary();
    }
    subDictionary[key2] = value;
}
Вопрос применимости как и в случае с вложенным массивом (если забыть об извратах типа index = i * 1000 + j):
1. Eсли объектов во вложенный dictionary набивается немного или ищем редко
- делаем перебором - создание влоденного словаря обойдется дороже
2. Eckb объектов во вложенном словаре много и ищем часто - используем этот способ - поиск обойдется дороже.
3. Если сами не можем сказать что такое "много" - спрашиваем профайлер.

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

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

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


 


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


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