2010-08-23 3 views
0

par exemple j'ai un objet un Textinput haveing ​​id = "pouvons-nous obtenir l'objet à partir duquel le focus a été volé sur le clic sur l'autre objet? ActionScript

id_txtBox

", et un panneau ayant beaucoup d'enfants (TextInputs, arbres, boutons, etc.) .. si l'utilisateur est , éditez le texte dans l'un des enfants du panneau, puis cliquez sur "id_txtBox". pouvons-nous savoir

l'utilisateur id/objet éditaient avant le cliquez sur "id_txtBox

". je veux dire de quel objet le "id_txtBox" a volé le focus ..?

Répondre

1

Ajoutez un écouteur d'événement à chaque enfant qui mettra à jour une propriété currentChild en obtenant le nom de l'élément sur lequel vous avez cliqué.

 

var previousChild:DisplayObject; 
var currentChild:DisplayObject; 

panelChild.addEventListener(MouseEvent.CLICK , clickHandler); 

private function clickHandler(event:MouseEvent):void 
{ 
    //to avoid an error on the first click 
    if(currentChild != null) 
    previousChild = currentChild; 

    // do whatever you need to do here, after it's complete, update the currentChild value; 
    // this way the previousChild value indicates the object that was clicked before 

    currentChild = this.getChildByName(event.currentTarget.name); 
} 
0

Vous pouvez gérer l'historique des objets mis en évidence en interne. Donc, chaque fois qu'un objet acquiert le focus, ajoutez-le à l'historique. Donc, si vous voulez interroger à partir de quel objet, l'objet focalisé actuel a volé le focus, vous devez vérifier l'objet précédent dans l'histoire. Vous pouvez configurer votre historique pour stocker autant d'objets que vous le souhaitez en fonction de vos besoins et continuer à supprimer l'historique de l'objet le plus ancien qui dépasse sa taille.

Questions connexes