Flex: ViewStack select by id
Flashben programozni szívás, Flexben is. Ezzel a problémával több mint egy órát tököltem, ezért szentelek neki egy gyors kis blogbejegyzést..
Van egy ViewStack komponensünk (MyViewStack), ebben pedig szépen elnevezett gyermek elemek. Elnevezés alatt azt értem, hogy mindegyiknek van saját “id”-je. Szeretnénk, hogy ne csak hagyományos módon az index alapján ( MyViewStack.selectedIndex=1) lehessen elérni, hanem a “Stack” id-je alapján, amit stringként közlünk a megjelenítő metódussal.
A metódus adott: MyViewStack.selectedChild=, viszont a bemenet nyilván nem lehet egy sima változónév, Container-re kell hivatkoznunk. Naív módon próbálkoztam ilyen flashes közhelyekkel: this[target] és társai..
Persze nem ment. Mivel Container kellett neki minden áron, beimportáltam az mx.core.Container csomagot és rájöttem, hogy mennyire szépen meg lehet ezek után oldani a problémát:
import mx.core.Container;
private function showTarget(target:String) : void
{
MyViewStack.selectedChild = Container(MyViewStack.getChildByName(target)) ;
}
