9
votes

Quelle est la différence entre cible et couranteTarget dans Flex?

Quelqu'un peut-il dire s'il vous plaît dites-moi la différence entre cible et couranteTarget dans Flex?


0 commentaires

3 Réponses :


18
votes

Bien sûr, j'ai eu des problèmes avec cela aussi. La propriété CurrentTarget code> est le IEventListener que vous avez enregistré le gestionnaire d'événements pour. La cible code> est celle qui a envoyé l'événement que vous manipulez actuellement. Donc, le CurrentTarget code> Modifications, la cible code> n'est pas.

Vérifiez l'exemple suivant: P>

échantillon app strong> p> xxx pré>

sortie fort> p> xxx pré>

C'est un simple arbre d'affichage, et lorsque l'application est prêt je: p>

  1. Ajoutez des auditeurs pour le même événement sur chaque composant de l'arborescence. LI>
  2. Envoi d'un événement arbitraire (juste pour la démonstration). J'ai choisi événement.compte code>. Li> ol>

    puisque Tout a enregistré un événementHandler pour ce même événement, et puisque j'ai défini bulles code> sur true ( nouvel événement (type, bulles) code>), N'importe quoi dans l'arbre, de l'enfant à GreatgrandParent et au-delà, qui a enregistré un gestionnaire d'événements pour event.clete code>, exécutera cette méthode: compledhandler code>. Les événements parcourent la chaîne puis reculer. La cible code> est celle qui a envoyé l'événement, de sorte que enfant code> l'a envoyé, il devrait être constant. Le CurrentTarget code> est ce qui change. P>

    Cela signifie que, disons que vous souhaitez vérifier lorsque vous roulez un datagramrid dans Flex, vous voulez savoir quand vous écrivez une case à cocher à l'intérieur. l'un des témoignages du DataGrid. Une solution consiste à ajouter à chaque itemRenderer's Cochez la case pour Mouseevent.roll_over code>. Une autre façon consiste à ajouter à la DataGrid elle-même pour mouseevent.roll_over code> et vérifiez ce que la cible est sur l'événement: p>

    protected function dataGrid_rollOverHandler(event:MouseEvent):void
    {
        // event.currentTarget is DataGrid
        if (event.target is CheckBox)
            trace("rolled over checkbox!");
    }
    


0 commentaires


-9
votes

Vous devriez suivre des tutoriels sur ce site: http://www.adobe.com / Devnet / Flex / Vidéotraining / Pour une introduction à Flex avant de poser une question comme celle-ci. Votre question est couverte le jour 1.


0 commentaires