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

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

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

Регистрация: May 2009
Сообщений: 40
По умолчанию Динамическое изменение itemRenderer

Есть TileList. у него есть itemRenderer. TileList генерит событие, при котором надо, чтобы в itemRenderer перестал отображаться один компонент - CheckBox.
Это реально сделать? и как?)

Старый 25.05.2009, 18:48
†‡Paladin‡† вне форума Посмотреть профиль Отправить личное сообщение для †‡Paladin‡† Найти все сообщения от †‡Paladin‡†
  № 2  
Ответить с цитированием
†‡Paladin‡†

Регистрация: Nov 2005
Сообщений: 1,058
Нельзя работать напрямую с айтемрендерером.
Поэтому нужно сделать следующее:
1) В данных добавить каждому значению флажок checkBoxFlag:Boolean = true;
2) в айтемрендерере забайндить visible чекбокса на флажок
3) Тайллист пускай ставит checkBoxFlag в данных на false.

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

Регистрация: May 2009
Сообщений: 40
Цитата:
Нельзя работать напрямую с айтемрендерером.
Поэтому нужно сделать следующее:
1) В данных добавить каждому значению флажок checkBoxFlag:Boolean = true;
2) в айтемрендерере забайндить visible чекбокса на флажок
3) Тайллист пускай ставит checkBoxFlag в данных на false.
Уточню немного.
В данных поле такое есть и оно используется.
У меня один итемРендерер на два view - пользовательский и админовский.
У админа отображается чек бокс и он может менять поле обьекта из датапровайдера.
А когда заходит пользователь, то чек бокс надо сделать невидимым.
И у админа есть кнопка при клике - меняет итем рендерер с админовского вью на пользовательский и назад.

Старый 25.05.2009, 20:19
†‡Paladin‡† вне форума Посмотреть профиль Отправить личное сообщение для †‡Paladin‡† Найти все сообщения от †‡Paladin‡†
  № 4  
Ответить с цитированием
†‡Paladin‡†

Регистрация: Nov 2005
Сообщений: 1,058
Ну и что мешает при смене вида менять флаг? Второй вариант менять айтемрендерер, но он бредовый.

Старый 25.05.2009, 23:41
BregoXX вне форума Посмотреть профиль Отправить личное сообщение для BregoXX Найти все сообщения от BregoXX
  № 5  
Ответить с цитированием
BregoXX

Регистрация: May 2009
Сообщений: 40
флаг юзается для других целей просто.
Добавить ещё одно поле тоже плохо.
А как сменить айтемРендерер?

Старый 26.05.2009, 08:10
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 6  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
list.itemRenderer = new ClassFactory(ItemRendererSGalochkoi);

Как вариант сделать статическое свойство у рендерера и на него забиндить чекбокс.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 26.05.2009, 10:58
BregoXX вне форума Посмотреть профиль Отправить личное сообщение для BregoXX Найти все сообщения от BregoXX
  № 7  
Ответить с цитированием
BregoXX

Регистрация: May 2009
Сообщений: 40
Цитата:
list.itemRenderer = new ClassFactory(ItemRendererSGalochkoi);
Угук. подошло)
А про статическое поле не понял мысли..

Старый 26.05.2009, 19:02
†‡Paladin‡† вне форума Посмотреть профиль Отправить личное сообщение для †‡Paladin‡† Найти все сообщения от †‡Paladin‡†
  № 8  
Ответить с цитированием
†‡Paladin‡†

Регистрация: Nov 2005
Сообщений: 1,058
Цитата:
Сообщение от BregoXX Посмотреть сообщение
Угук. подошло)
А про статическое поле не понял мысли..
Это очень плохой способ. Вместо того, чтобы отдиспатчить событие и скрыть ненужные кнопки, мы пересоздаем полностью все айтемы, что заставляет флекс пересоздавать все заново, удалять старые объекты и перерасчитывать весь лэйаут. Про статическое поле я тоже чет не понял мысли.

Старый 26.05.2009, 22:25
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 9  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Эх это тоже тот еще способ, который я использовал один раз из-за лени.

Делаете у рендерера статическую проперть
Код AS3:
[Bindable]
public static var showCheckBox:Boolean = true;
 
bla-bla
 
<mx:CheckBox visible="{showCheckBox}" />
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 27.05.2009, 10:40
BregoXX вне форума Посмотреть профиль Отправить личное сообщение для BregoXX Найти все сообщения от BregoXX
  № 10  
Ответить с цитированием
BregoXX

Регистрация: May 2009
Сообщений: 40
Цитата:
Это очень плохой способ. Вместо того, чтобы отдиспатчить событие и скрыть ненужные кнопки, мы пересоздаем полностью все айтемы, что заставляет флекс пересоздавать все заново, удалять старые объекты и перерасчитывать весь лэйаут. Про статическое поле я тоже чет не понял мысли.
Эт ясно, что плохо.
Есть такая структура
Код AS3:
 
<mx:VBox id = "myContainer">
<pageheader:PageHeader id = "pageHeader"
                           visible = "false"
                           facade = "{facade}"/>
    <documentlist:DocumentList id = "documentList"
                               visible = "false"
                               facade = "{facade}"/>
</mx:VBox>
pageHeader диспатчит событие нажатия на свой баттон. В myContainer я добавил слушателя для пейджХедара для этого события. Но как дальше обратиться к итемРендеру ТайтлЛиста, который вложен в documentList?
documentList представляет из себя следующее
Код AS3:
<?xml version = "1.0" encoding = "utf-8"?>
<documentlist:DocumentListLogic xmlns:documentlist = "de.dts.isy3suite.plugin.bcspecificpage.documentlist.logic.*"
                                xmlns:pageswitcher = "de.dts.isy3suite.plugin.bcspecificpage.documentlist.pageswitcher.*"
                                xmlns:view="de.dts.isy3suite.plugin.bcspecificpage.documentlist.view.*"
                                xmlns:mx = "http://www.adobe.com/2006/mxml"
                                creationComplete = "onCreationComplete();"
                                width = "750"
                                height = "100%">
 
    <pageswitcher:PageSwitcher gotoFirstClick = "selectPage(event)"
                               gotoLastClick = "selectPage(event)"
                               gotoNextClick = "selectPage(event)"
                               gotoPreviousClick = "selectPage(event)"
                               curPage = "{curPage}"
                               totalPages = "{totalPages}"/>
    <view:BCTileList id = "documentList"
    			 styleName="bcTileListStyle"
				 height = "100%"
				 width = "100%" 
                 minHeight="40"
                 selectable = "true"
                 doubleClickEnabled = "false"
                 itemClick = "showDocumentVersion(event)"
                 dataProvider = "{documentVesions}"
                 itemRenderer = "DocumentVersionAdminItemRender">
    </view:BCTileList>
</documentlist:DocumentListLogic>
Цитата:
Эх это тоже тот еще способ, который я использовал один раз из-за лени.

Делаете у рендерера статическую проперть
Как потом к этой проперти обратиться из вне?


Последний раз редактировалось BregoXX; 27.05.2009 в 10:50. Причина: Так надо
Создать новую тему Ответ Часовой пояс GMT +4, время: 15:14.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

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

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


 


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


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