PDA

Просмотр полной версии : Узнать индекс элемента вызвавшего событие


Ivanaka
12.08.2010, 01:26
Казалось бы, проще простого:


teamGroup.getElementIndex(e.currentTarget)


Но компилятор ругается на несоответствие типов Объект и Визуального элемента.
Кто нибудь сталкивался?

ShockWave512
12.08.2010, 02:19
teamGroup.getElementIndex(e.currentTarget as VisualElement)
но лучше так не делать

Ivanaka
12.08.2010, 12:54
teamGroup.getElementIndex(e.currentTarget as VisualElement)
но лучше так не делать

ShockWave, спасибо, работает. А как лучше сделать?

ShockWave512
12.08.2010, 13:26
нужно смотреть весь код, так сразу не скажу

ну, например так: держать в teamGroup забинденый индех на эти элементы
и кликнутый элемент сам меняет этот индекс

в вашем случае если придет currentTarget не VisualElement типа, получите ошибку

такое сплошь и рядом

Ivanaka
13.08.2010, 00:03
Пока что работает на ура. У меня элементы в teamGroup создаются динамически (забиндить не получится) и только IVisualElement, ничего левого быть вобщем-то не может.

ShockWave512
13.08.2010, 01:05
почему это ?
visElement.localVarRef = mainBindVar

yank
15.08.2010, 22:51
ShockWave512, не могли бы вы привести небольшой кусок кода поясняющий вашу мысль? Обычно делаю через as, но хотелось бы усвоить "как надо".

ShockWave512
15.08.2010, 23:07
// Это в родителе
[Bindable]
public var colorBackground:uint = 0x000000;

// Это тоже в родителе
<mx:VBox backgroundColor="{colorBackground}"/>

//Цикл создания детей (List, Repeater, For - не суть)
visualChildVar.colorBackground = this.colorBackground; // Пишем в дитё ссылку на биндованную переменную, ессна в классе дитя она должна быть описана

// Терь если меняется в любом из чаилдов, это отражается в родителе.
colorBackground = 0x00ff00;