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

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

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

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
А не смущает, что при вашем способе длина массива почему-то растёт при смене индекса эл-та? =)
А вообще для отката достаточно помнить эл-т и индекс, а не массив.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 02.12.2010, 18:27
leofit вне форума Посмотреть профиль Отправить личное сообщение для leofit Найти все сообщения от leofit
  № 12  
Ответить с цитированием
leofit
 
Аватар для leofit

Регистрация: Dec 2009
Сообщений: 428
Цитата:
Сообщение от goodguy Посмотреть сообщение
Да от Вас и не требуется этого понимать =) Главное, что я понимаю.

Код AS3:
_array.push(targetElement, _container.getChildIndex(targetElement));
эмм.. мне нужно сменить индекс элемента. Это говорит о том, что элемент в массиве уже присутствует. А таким образом я лишь добавлю его туда еще раз.
Вообще то это Ваш код, который я скопировал что бы спросить "что за...?". А теперь Вы мне говорите что это не правильный код, и что я всякую фигню пишу что ли?
__________________
Скажи мне кто твой друг и я скажу тебе кто твой друг

Старый 02.12.2010, 18:50
kiraml вне форума Посмотреть профиль Отправить личное сообщение для kiraml Найти все сообщения от kiraml
  № 13  
Ответить с цитированием
kiraml

Регистрация: Aug 2008
Сообщений: 63
использовать sortOn по массиву. и ставить в нужную позицию setChildIndex. и я бы использовал бы addChildAt

Код AS3:
private function setPos(item:MyClass, pos:Number):void{
       item.pos = pos;
       elements.sortOn("pos", Array.NUMERIC);
       var index:Number = elements.indexOf(item);
       addChildAt(item, index);
}
elements - все обьекты. после сортировки становятся в нужную позицию


Последний раз редактировалось kiraml; 02.12.2010 в 18:54.
Старый 02.12.2010, 19:10
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 14  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Сообщение от leofit Посмотреть сообщение
Вообще то это Ваш код, который я скопировал что бы спросить "что за...?". А теперь Вы мне говорите что это не правильный код, и что я всякую фигню пишу что ли?
Значит я не так понял Ваш пост.

А что в моем коде непонятного-то?

Там есть еще строчка перед этим, которая удаляет элемент из массива, а потом добавляет его в этот же массив на индекс, соответствующей индексу этого элемента в контейнере. По-моему все очевидно.

Цитата:
Цитата:
Сообщение от kiraml Посмотреть сообщение
использовать sortOn по массиву. и ставить в нужную позицию setChildIndex. и я бы использовал бы addChildAt

Код AS3:
private function setPos(item:MyClass, pos:Number):void{
       item.pos = pos;
       elements.sortOn("pos", Array.NUMERIC);
       var index:Number = elements.indexOf(item);
       addChildAt(item, index);
}
elements - все обьекты. после сортировки становятся в нужную позицию
По-моему я четко объяснил, что именно мне нужно.
setChildIndex и addChildAt - далеко не одно и то же. + у меня сначала меняется индекс элемента в контейнере, а уже потом в массиве. Сортировку здесь вообще никак не прикрутить.


Ладно, видимо лучших решений нет, так что использую свои. Тему можно клоуз.


Последний раз редактировалось goodguy; 02.12.2010 в 19:13.
Старый 02.12.2010, 19:26
leofit вне форума Посмотреть профиль Отправить личное сообщение для leofit Найти все сообщения от leofit
  № 15  
Ответить с цитированием
leofit
 
Аватар для leofit

Регистрация: Dec 2009
Сообщений: 428
Код AS3:
_array.push(targetElement, _container.getChildIndex(targetElement));
Этот код вставляет ДВА элемента В КОНЕЦ массива, с чего Вы взяли что элемент добавится в какое то другое место? Вам об этом уже несколько постов написали =)
тогда уж
Код AS3:
_array[_container.getChildIndex(targetElement)] = targetElement;
__________________
Скажи мне кто твой друг и я скажу тебе кто твой друг

Старый 02.12.2010, 19:55
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 16  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
тфу ты, точно. Написал как для setChildIndex
Не соображает голова после работы..

Ладно, все равно уже сегодня вряд ли что дельное напишу. Жалко, что нет функции которая просто добавила бы элемент в нужную позицию массива, а все последующие элементы просто сдвинула


Последний раз редактировалось goodguy; 02.12.2010 в 19:57.
Старый 02.12.2010, 20:02
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 17  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Цитата:
Сообщение от goodguy Посмотреть сообщение
Жалко, что нет функции которая просто добавила бы элемент в нужную позицию массива, а все последующие элементы просто сдвинула
splice()
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 02.12.2010, 20:06
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 18  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
O_o Точно! Я уже и забыл, что его можно использовать не только для удаления.

iNils, то, что доктор прописал. Спасибо

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Я бы так и сделал, но так как я очень придирчив к самому себе, мне може в любой момент не понравиться расположение какого-то элемента на карте, и я захочу его поменять
т.е. чисто для возможности "отката"
Как это связано с настойчивым желанием дублировать список отображения?

Старый 04.12.2010, 10:25
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 20  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Это не дубль списка отображения. Это массив с объектами, содержащими описание элементов расположенных в списке отображения.

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

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

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


 


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


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