Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/10/2007, 11h12   #1
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 58
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 58
Points : 15
Points : 15
Envoyer un message via MSN à nina_bee Envoyer un message via Skype™ à nina_bee
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 :
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
nina_bee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2007, 23h29   #2
Rédacteur
 
Avatar de loka
 
Homme Romain PERRUCHON
Architecte - Expert Technique
Inscription : novembre 2004
Messages : 2 664
Détails du profil
Informations personnelles :
Nom : Homme Romain PERRUCHON
Âge : 30
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Architecte - Expert Technique
Secteur : Service public

Informations forums :
Inscription : novembre 2004
Messages : 2 664
Points : 3 607
Points : 3 607
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 ?
__________________
SFML - API Multimédia C++ multiplateforme !
loka est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h30.


 
 
 
 
Partenaires

Hébergement Web