IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

Simuler generique en AS3 ou restreindre Array sur seul Type


Sujet :

ActionScript 3

  1. #1
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut Simuler generique en AS3 ou restreindre Array sur seul Type
    salut,
    J'essaie de restreindre l'utilisation d'un tableau à un seul type d'objet à la fois.
    Je voudrais pouvoir passer un type dans le constructeur et faire une vérification de type sur tous les objets ajoutés par la suite.

    J'ai écrit ça en priant très fort...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    package app.data
    {
     
    	public class DataArray extends Array	
    	{
     
    		private var _type:Class;
     
    		public function DataArray(type:Class)
    		{
    			super(false);
    			this._type = type;
    		}
     
    		public function addItem(item:Object):void{
    			if (item is _type){
    				var newItem:_type = item as _type;
    				this[newItem.ID] = newItem;
    			}else{
    				throw new Error("Item is not expected Type. Should be : " + _type.toString() );
    			}		
    		}
     
    		public function getItemByID(id:Number):*{
    			return this[id] as _type;
    		}
     
    	}
    }
    mais, oh quelle surprise!!
    j'ai une erreur de compilation...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ce type est introuvable ou n'est pas une constante de compilation : _type.
    Une idée comment faire pour restreindre l'utilisation de Array sur un seul Type?

    (je sais qu'il existe la classe Vector mais je préfère utiliser Array car les index ne doivent pas nécessaire être consécutifs)

  2. #2
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    salut,

    tu as la classe Vector pour les tableaux typés !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var:Vector.<int> = new Vector.<int>();
    sinon modifie ta classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    super.push(item as _type);
    et vire aussi le FALSE !

    mais je crois pas que tu sois partie dans la bonne direction

Discussions similaires

  1. Comment utilisé un array sur un Mc
    Par goldor dans le forum Flash
    Réponses: 3
    Dernier message: 06/07/2007, 15h57
  2. Simuler un double-clic ou un F2 sur une JTable
    Par JamesP dans le forum Composants
    Réponses: 2
    Dernier message: 16/05/2007, 10h38
  3. [Tableaux] Array sur deux colonnes et foreach..
    Par shadeoner dans le forum Langage
    Réponses: 4
    Dernier message: 16/03/2006, 08h46
  4. Simulation de la parallelisation d'une appli sur un réseau
    Par dinver dans le forum Développement
    Réponses: 1
    Dernier message: 24/06/2005, 19h37
  5. un array sur images ? LOL
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 09/12/2004, 09h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo