2010-08-26 5 views
0

Comment puis-je ajouter un ensemble d'images dynamiques, puis ajouter des gestionnaires d'événements à chacun d'eux pour déclencher un événement différent?Configuration des images dynamiques et des gestionnaires d'événements pour chacun dans Flash Builder

Mon scénario est que j'ai un service distant qui saisit un ensemble de données (ArrayCollection) qui a un className, classID et classDescription. Je voudrais que les images aient des gestionnaires d'événements qui déclenchent un nouvel affichage de panneau qui montrerait le "classDescription" pour la classe particulière qui est cliquée. Mon problème consiste à trouver comment récupérer le bon ensemble de données et d'ajouter les images correctement au panneau.

Répondre

1

de votre collection Array créer un objet de valeur, une classe ou d'une interface en vérifiant que les noms de propriétés sont identiques et créer les accesseurs pertinents pour elle

 

public class DataObject 
{ 
    protected var _classDescription:String; 

    public function get classDescription():String 
    { 
    return _classDescription; 
    } 

    public function set classDescription(value:String):void 
    { 
    _classDescription = value; 
    } 
} 

Lorsque vous récupérez votre objet sous forme de votre ArrayCollection, vous pouvez boucle à travers les propriétés de l'objet pour les attribuer à votre objet de valeur

 

    var dataObj:DataObject = new DataObject(); 

    for each (var prop:String in collectionObject) 
     if(dataObj.hasOwnProperty(prop)) 
      dataObj[prop] = collectionObject[prop] ; 

Cet objet devrait étendre Sprite afin que vous puissiez ajouter votre image comme un enfant et distribuer un événement de la souris. Dans le conteneur d'images, l'objet de valeur ajouterait un auditeur MouseEvent et la fonction d'écoute pourrait être quelque chose comme ceci:

 
private function mouseClickHandler(event:MouseEvent):void 
{ 
    var target:YourValueObject = event.currentTarget as YourValueObject; 
    trace (target.classDescription); 
} 
+0

Donc, si j'ai les propriétés d'un objet dans ma collection comme nommée ci-dessus, afin de « cast "l'objet dans un DTO (objet de valeur) tout ce que j'ai à faire est de mettre en place les variables dans le DTO pour faire correspondre l'objet ArrayCollection et il le passera? – Organiccat

Questions connexes