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

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

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

Регистрация: Jan 2007
Сообщений: 91
По умолчанию HorizontalList и removeItemAt()

Добрый день, использую HorizontalList с наполнением из ArrayCollection. HorizontalList является компонентом, который я добавляю в руте:

Код:
<mx:HorizontalList id="myList" itemRenderer="components.Frame" />
<mx:Script>
	<![CDATA[
		import mx.collections.*;
		private var _this:Object;
		private function initApp():void {
			myList.addEventListener("itemDelete", onItemDelete);
			_this = this.parent.parent;
		}
		private function onItemDelete(e:Event):void{
			var r:Frame = e.target as components.Frame;
			var targetIndex:int = myList.itemRendererToIndex(r);
			myList.removeChildAt(targetIndex);
			_this.mn.dataFrame.removeItemAt(targetIndex);
		}
	]]>
	</mx:Script>
Но строчка, выделенная болдом удаляет у меня весь(!!!) компонент HorizontalList. Трейс targetIndex выдает правильное значение, то есть тот индекс, элемент которого надо удалить.

Дело в том, что у меня есть две кнопки, добавить элемент и удалить, добавляет хорошо, но если я удалю элемент, то из ArrayCollection он удаляется, а из HorizontalList нет, поэтому, когда я снова начинаю добавлять элементы, то визуально их не видно:

Пример:

я добавил 3 элемента:
[] [] []
и нажал удалить первый элемент. В коллекции я получаю:
[][]
а в HorizontalList
*[][] - то есть вместо звездочки что-то есть
и когда я снова добавляю один элемент, то я его не вижу, т.е.:
*[][]
а добавим потом еще один, то
*[][][]

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

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

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


 


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


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