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

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

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

Регистрация: Sep 2010
Сообщений: 90
По умолчанию Удаление элемента массива по имени.

Доброго дня, столкнулся с небольшой задачкой и никак не могу ее решить.
У меня массив info_list, который содержит ссылки на клипы. Каждый клип имеет уникальное имя. В определенные моменты я удаляю определенные клипы (с этим проблем нет через перебор for), но вот как мне найти нужную ссылку на клип в массиве, что бы удалить ее? Ведь индекс удаляемого клипа не известен, только его имя, соответственно ни splice, ни shift, ни pop не работают. А так массив постоянно заполняется, когда я создаю новые клипы и фпс заметно падает. Пробовал через перебор For и сравнение имени у ссылки на клип с передаваемым, а затем info_list.splice(0, 1, info_list[temp]) - не работает, удаляется только ссылка на 1й клип, а я могу удалять сразу несколько, пробовал просто info_list.splice(info_list[temp], 1) - так вообще абы какие клипы удаляются.
Пожалуйста, подскажите кто-нибудь.


Последний раз редактировалось HorusWM; 01.06.2011 в 14:37.
Старый 01.06.2011, 14:47
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 2  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
в удаляемый клип, при его создании, записывайте ссылку на элемент массива.

мой_клип.ссылка = номер_элемента_массива

Перед удалением клипа - удаляйте элемент по ссылке.
К примеру.
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 01.06.2011, 14:52
HorusWM вне форума Посмотреть профиль Отправить личное сообщение для HorusWM Найти все сообщения от HorusWM
  № 3  
Ответить с цитированием
HorusWM

Регистрация: Sep 2010
Сообщений: 90
Благодарю за отклик, можно было сделать так, но нашел другой выход) Весь вечер вчера голову ломал, сразу не дошло: перебор делать через цикл for (i=0.. и далее сравнивать имя искомого индекса, а я перебирал только по самим ссылка в массиве. Задача решена, но всеравно спасибо, dark.

Старый 01.06.2011, 14:56
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 4  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
ну в общем да, для индексированных массивов счетный цикл самое то
for in имеет смысл применять, если индекс массива - литерал.
Типа имя_массива["Возраст"] = 666
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 01.06.2011, 15:00
HorusWM вне форума Посмотреть профиль Отправить личное сообщение для HorusWM Найти все сообщения от HorusWM
  № 5  
Ответить с цитированием
HorusWM

Регистрация: Sep 2010
Сообщений: 90
Вы имеете ввиду, если в массиве хранятся не ссылки на инстансы, а просто строковые значения?

Старый 01.06.2011, 15:09
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 6  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Нет, если индекс элемента массива выглядит не так:
arr[0]
arr[1]
arr[2]

А так:
arr["Vasia"]
arr["Katia"]
arr["iNills"]
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 01.06.2011, 15:13
HorusWM вне форума Посмотреть профиль Отправить личное сообщение для HorusWM Найти все сообщения от HorusWM
  № 7  
Ответить с цитированием
HorusWM

Регистрация: Sep 2010
Сообщений: 90
но это всеравно могут быть ссылки на инстансы? если да, то как добавлять тогда таким образом индексы, push("Vasya") ?

Старый 01.06.2011, 15:17
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 8  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
в самом элементе хранить можно все что угодно.
а push.... я обычно добавляю так:

array[array.length] = очередные_данные_какие-то_любые

Добавляется в конец и нормально увеличивается размер.
В вашем случае ничего не надо добавлять, по сути.

arr["Vasia"] = 100500 - это само по себе создаст в массиве элемент с таким индексом
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 01.06.2011, 15:20
HorusWM вне форума Посмотреть профиль Отправить личное сообщение для HorusWM Найти все сообщения от HorusWM
  № 9  
Ответить с цитированием
HorusWM

Регистрация: Sep 2010
Сообщений: 90
аа, понял.. это удобно для сортировки потом, но это, получается, подходит только для заполнения вручную? скажем, если эл-тов очень много (ну, скажем, уже больше десятка), то процесс не автоматизировать?

Старый 01.06.2011, 16:07
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 10  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Смотря откуда вы берете данные.
Ну и литерал собссно тоже можно генерить как угодно.
Например из индексов символов собирать строки.
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

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

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

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


 


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


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