HELP! manipulation d'un tree sous adob flex 3

Résolu
Bonjour,
dans mon programme j'essaie de contrôler un Viewstack a partir d'un tree..

ici une partie du code de mon tree :
-----------------------------------------------------------------------------------------------------------------------
<mx:XMLList id="treeData">
<node label="eTOM Box">
<node label="Strategy Infrastructure and Product" id="1">
<node label="Strategy and Commit" id="sc">
</node>
.....

<mx:Tree id="myTree" width="50%" height="100%" labelField="@label"
showRoot="false" dataProvider="{treeData}" change="treeChanged(event)"/>
-----------------------------------------------------------------------------------------------------------------------

ici la définition de la methode treechanged() :

-----------------------------------------------------------------------------------------------------------------------
<mx:Script>
<![CDATA[
import mx.controls.Label;
import mx.controls.Alert;
import mx.core.Container;

[Bindable]
public var selectedNode:XML;

// Event handler for the Tree control change event.
public function treeChanged(event:Event):void {
selectedNode=Tree(event.target).selectedItem as XML;
Alert.show(selectedNode.@id);
myViewStack.selectedChild=selectedNode.@id ;
}
]]>
-----------------------------------------------------------------------------------------------------------------------

le probleme c'est que la methode alert.show() fonctionne (elle affiche le id du node séléctionné) mais le viewstack (myViewStack.selectedChild) ne fonctionne pas.. il ne change pas lors du click!!
et lorsque je tape ce ligne :
-----------------------------------------------------------------------------------------------------------------------
myViewStack.selectedChild=sc ; // sc est un id d'un node
-----------------------------------------------------------------------------------------------------------------------

il fonctionne bien !

alors je comprend pas .. veuillez m'aider svp!!
Configuration: Windows 2003
Firefox 3.0.11

6 réponses

  1. T'as pas un probleme de typage ? Car la tu veux mettre dans un "Object"(selectedChild) une valeur numérique qui n'est pas un Object (ton identifiant) donc je pense que si tu fais un alert.show(selectedNode.@id as Object) tu devrais voir le soucis..

    Pimp your Flex ;)
    0
    1. en fait selectedChild est de type Container .. j'ai essayer ceci :

      myViewStack.selectedChild=Container(selectedNode.@id) ;

      mais en vain!!
      0
      1. En fait selectedChild est de type Container ..
        Je fais ça de tête dans doc...

        Normal il faut lui assigner une instance d'objet de type Container car quand tu cast Container(selectedNode.@id) je pense que si tu le trace tu verra que sa valeur est "null".
        La tu ne lui passe pas un objet comme quand tu fais myViewStack.selectedChild=sc ; // sc est un id d'un node
        La c'est un objet qu'il faut lui placer c'est pas comme si tu lui donnais genre un "selectedIndex"...
        0
        1. alors tu me propose d'utiliser selectedIndex ? .. j'ai pas bien compris ta réponse :(
          0
          1. ah ok !! j'ai utilisé selectedIndex et ça marche ! enfin !! merci bq :)
            0
            1. Foilà m'sieur ;)
              You've got to pimp my flexxxxxxxx...
              0