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

Flex Discussion :

Flex 2 array récalcitrant en AS3


Sujet :

Flex

  1. #1
    Invité
    Invité(e)
    Par défaut Flex 2 array récalcitrant en AS3
    Bonjour à tous,
    je suis en train de créer un petit catalogue en flex. A chaque produit correspond 2, 3, 4, ou 5 images.
    J'aimereais les présenter dans un ViewStack qui changerait grâce aux boutons d'un ToggleBar (un grand classique ) Le probleme c'est que le nombre d'images peut varier en fonction des produits.
    En ActionScript j'ai créé une classe produit qui récupère les chemins des images pour chaque produit. par exemple:
    img =>image principale : assets/jpeg/1.jpg
    img2 => image 2 : assets/jpeg/2.jpg
    ... jusqu'à 5. Mais si un produit n'a que 3 images img4 et img 5 sont null.

    J'ai donct voulu placer toutes mes variables non null dans un tableau et avec une boucle for créer autant de vues que nécéssaire
    voici le code:

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    //DétailProduits.mxml :
    <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" 
        xmlns:VP="VP.*"
        xmlns:Effets="boo.nina.flex.Effets.*"
        horizontalScrollPolicy="off" verticalScrollPolicy="off" height="478" width="470" initialize="initDet()">
     <mx:Script>
            <![CDATA[
     
    		import mx.events.*;
    		import mx.effects.effectClasses.*;
     
    		//pour créer un lien:
    		import flash.net.*;
     
    		import mesClasses.Catalogue.Produit;
    		import mesClasses.Catalogue.ProduitEvent;
     
     
     
            private var _product:Product;
     
            [Bindable]
            public function get produit():Produit
            {
                return _produit;
            }
     
            public function set produit(p:Produit):void
            {
                _produit = p;
                tn.selectedIndex = 0;
     
            }
     
            public var pdt:Produit;
     
            //////////////PERSO
            public function initDet():void{ 
    				//Création d'un tableau 
                     var tableauImgPdt:Array = new Array (pdt.img); 
     
    				//si il y a une image 2: 
                    if(pdt.img2!=null) 
                    { 
                       tableauImgPdt.push(pdt.img2); 
                    } 
    				//si il y a une image 3: 
                    if(pdt.img3!=null) 
                    { 
                       tableauImgPdt.push(pdt.img3); 
                    } 
    				//si il y a une image 4: 
                    if(pdt.img4!=null) 
                    { 
                       tableauImgPdt.push(pdt.img4); 
                    } 
    				//si il y a une image 5: 
                    if(pdt.img5!=null) 
                    { 
                       tableauImgPdt.push(pdt.img5); 
                    } 
               var i:int; 
    //boucle for qui permet de lire le tableau  et de créer une vue pour chaque image 
               for (i=0; i<tableauImgPdt.length; i++) 
               { 
                  var ma3Dbox:_3DBox = new _3DBox;
                  ma3Dbox.id = 'boite'+i; 
                  visuels.addChild(ma3Dbox); 
                  var monImage:Image = new Image; 
                  monImage.source = tableauImgPdt[i]; 
                  ma3Dbox.addChild(monImage); 
               } 
     
            } 
     
     
    	]]>
        </mx:Script>
    Aucune erreur dans ma console mais quand je teste, j'ai un erreur :

    TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
    at productsView : : ProductDetails/initDet()

    Au bebugage, je vois que les variable pdt.img, pdt.img2, etc posent un probleme et que mon tableau est vide.
    Comment résoudre cette erreur?
    Merci d'avance

  2. #2
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Par défaut
    Bonjour,

    Apparemment ton tableau semble être vide si j'ai bien compris.
    Donc cela veut dire que tes variables pdt.xxx sont aussi vides.

    Je pense que le problème vient de la récupération du chemin de tes images. Quel est le code pour ça ? As tu bien testé que tu récupères bien le chemin ?

Discussions similaires

  1. Action sur des Cues Points - AS3 - Flex Builder 3
    Par franquis dans le forum Flex
    Réponses: 0
    Dernier message: 27/01/2009, 22h32
  2. Comparaison de date en Flex/AS3
    Par azazel971 dans le forum Flex
    Réponses: 1
    Dernier message: 10/12/2008, 10h50

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