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

MXML Discussion :

TypeError : Error #1009


Sujet :

MXML

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut TypeError : Error #1009
    Voila j'ai un projet en cours en Flex/AS3 et j'ai un petit souci.
    J'ai conçut un composant MXML, qui n'est autre qu'un panel avec une floppée d'images, dont une qui change avec le temps...
    comprenez, qu'elle est modifiable. Si la source données n'est correcte, l'image par défaut est appliquée.

    Et c'est là que ca ne va pas. Les images internes, donc par défaut, sont des ressources Embed donc embarquées directement dans le SWF, mais sinon les images que je dois appliquer à l'image qui peut changer dans ce composant, sont des URL absolues. (sur le même nom de domaine... je connais les règles de sécurité imposée à flex... silverlight souffre des memes restrictions.)

    En effet dans la mesure où j'ai tout un basard à effectuer commee traitement une fois la source appliquée à l'image du composant, j'ai donc créé une propriété sur le composant, qui s'appelle thumbnail de type Objet avec les deux assesseurs get et set.

    le problème c'est que lorsque j'instancie le composant, après une lecture depuis un XML, quand je fourni une String contenant une url dans la propriété thumbnail, j'ai droit à une magnifique exception...
    TypeError : Error #1009

    Voici les différentes parcelles de code...
    dans le composant :
    (le reste du code et les fragments de code sans rapports ont été effacés)
    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
     
    	<mx:Script>
    		<![CDATA[
    			/// Ressources graphiques embarquées
    			[Embed(source="../images/galleries/nothumb.png")]
    			[Bindable]
    			private var defaultIcon : Class;
     
    			/// Champs internes
    			private var m_Custom : Boolean;
     
    			/// Définition de l'icône
    			/// Si cette propriété n'est pas définie ou que l'image ne peut-être chargée une icône par défaut est utilisée
    			public function get thumbnail() : Object
    			{
    				if ( !m_Custom ) return null;
    				return iThumb.source;				
    			}
    			public function set thumbnail(value: Object) : void
    			{
    				m_Custom = true;
    				iThumb.source = value;
    			}
     
    			/// Gestionnaires d'évenements
    			private function hError (result : Object) : void
    			{
    				m_Custom = false;
    				iThumb.source = defaultIcon;
    			}
    		]]>
    	</mx:Script>
    	<mx:Image id="iThumb" width="130" height="136" left="8" top="3" source="{defaultIcon}" ioError="hError(event)"/>
    et lorsque j'utilise le composant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    for each (var item : XML in list)
    {
    	var attrName : XMLList = item.@name;
    	var attrUrl : XMLList = item.@file;
     
    	var thumb : decThumb = new decThumb(); /// <= Composant où j'ai le problème
     
    	thumb.title = attrName.toXMLString();
    	thumb.thumbnail = attrUrl.toXMLString() + "/thumbnail.jpg"; /// <= ICI ON A UNE EXCEPTION !!!
    	thumb.url = attrUrl.toXMLString();
    nota, attrUrl.toXMLString()+"/thumbnail.jpg" retourne une chaine...

    Donc voilà je suis un peu perplexe, car la chaine qui en résulte est une URI pleinement qualifiée http://www.domaine.tld/.../.../thumbnail.jpg
    et cette URI existe, seul le fichier n'existe pas... c'est d'ailleurs pour cette meme raison que je récupère les ioError...

    Donc voilà je suis un peu perdu, donc si une ame charitable savait ce qui clochait et me dire quoi faire, je suis preneur

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Tu as tracé attrUrl.toXMLString() sans l'affecter à thumbnail pour vérifier que attrUrl n'était pas nul ?

    Si l'erreur survient dans l'affectation de la propriété thumbnail sans entrer dans le code du setter c'est probablement le cas.

    Sinon dans le setter l'erreur survient où ?
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    attrUrl.toXMLString() fonctionne correctement, car dansle cas d'un affichage de l'url complete ca marche... ya qu'une fois appliqué à thumbnail que ca va pas.

    pour ce qui est du test en local il est compromis de part l'utilisation de webservices...

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    Bon voila j'ai finallement réussi a débugguer l'application et cela venait du fait que iThumb était pas instancié au moment ou le setter thumbnail était appelé.

    En fait le probleme vient du fait que le new decThumb n'attend pas que l'objet soit totalement initialisé pour quitter... il rend la main avant meme que les objets MXML qui sont à l'intérieur ne soient tous instanciés et initialisés, donc le code appelant provoquait une erreur.

    Bien que cela soit un peu génant c'est résolu.
    Merci pour votre aide.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    En fait c'est pas génant, c'est normal...

    Si ta variable locale thumb n'est pas référencée avant d'être réutilisée elle est garbagecollectée !
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. TypeError: Error #1009
    Par laurent94 dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 31/07/2011, 18h57
  2. [CS3] TypeError: Error #1009
    Par solenn c dans le forum ActionScript 3
    Réponses: 6
    Dernier message: 24/01/2011, 18h45
  3. TypeError: Error #1009: Avec un simple bouton
    Par ArC3Nik dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 06/06/2010, 19h20
  4. Réponses: 4
    Dernier message: 23/04/2009, 13h45
  5. TypeError: Error #1009
    Par charlix dans le forum Flex
    Réponses: 3
    Dernier message: 13/10/2008, 17h02

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