![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2004
Сообщений: 194
|
Как я могу обратится к компоненте-итему моего TileList, заданного с помощью itemRenderer - dataProvider? чтобы извне поменять какие-либо его свойства, задать листенеры и тд.
Спасибо. |
|
|||||
|
Так тебе к чему надо обратиться? К Рендереру или к элементу датаПровайдера?
Если ты хочешь извне менять какието свойства рендерера, то это strongly-strongly не рекомендуется. Рендерер должен изменять свои свойства только на основе полученной data.
__________________
Jedem das Seine |
|
|||||
|
Регистрация: Jun 2004
Сообщений: 194
|
я хочу прописать листенер для конкретного элемента датаПровайдера извне несмотря на то что это strongly-strongly не рекомендуется.
|
|
|||||
|
Strongly-strongly не рекомендуется изменять свойства рендерера. А свойства элемента датаПровайдера можно менять как Вам угодно
![]() Тогда непонятно что Вас останавливает. К элементу датаПровайдера доступ можно получить с помощью myTileList.DataProvider[index], например. И вешать на него какие угодно листенеры. Ну а если точно изместно какого датаПровайдер типа, то возможностей получить доступ еще добавляется ![]() Вы б написали конкретнее что у вас там в датаПровайдере, как ренедрится и какой лисенер Вы хотите навесить тудой.
__________________
Jedem das Seine |
|
|||||
|
Регистрация: Jun 2004
Сообщений: 194
|
Вообще проблема на самом деле глубже. Вопрос задал попутно - интересно стало. Флекс учу
. А вопрос вот в чем. Я делаю флекс рекордер. Мне нужно дать пользователям возможность выбрать активный микрофон из существующих в системе. Использую TileList,элементами которого являются экзампляры компоненты, которая должна показать пользователю какой из микрофонов находится в рабочем состоянии. То есть фиксировать activityLevel каждого микрофона и выводить на экран. подобный функционал реализован тут : http://www.tokbox.com/ в videomessage/send... Однако же у меня не тот микрофон показывается активным, который действительно активен. Похоже что где-то ивенты накладываются или типа того. Вот код к компоненте которую я объявляю как itemRenderer import flash.media.Microphone; import flash.events.Event; import flash.events.ActivityEvent; [Bindable] public var ID:int = 0; private var mic:Microphone; public function init():void{ var i:int = ID; mic = Microphone.getMicrophone(i); mic.addEventListener(ActivityEvent.ACTIVITY, activityHandler); } public function activityHandler(e:Event):void{ activitySlider.value = e.target.activityLevel; // activitySlider.value = mic.activityLevel; } public function initMicSettings():void{ var micNumber:int = Microphone.names.length; var arr:ArrayCollection = new ArrayCollection(); var micitem:Object; var mic:Microphone; for (var i:int = 0; i < micNumber; i++){ micitem = new Object(); micitem.ID = i; arr.addItem(micitem); } micitems.dataProvider = arr; micitems.selectedIndex = 0; } Последний раз редактировалось humble david; 10.03.2010 в 17:55. |
|
|||||
|
Регистрация: Jun 2004
Сообщений: 194
|
Ура! Спасибо, помогло!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|