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 :

Objet Stage, référencé comme un objet nul.


Sujet :

ActionScript 3

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 4
    Par défaut Objet Stage, référencé comme un objet nul.
    Bonjour,

    Je débute en AS3 / POO, et je suis confronté depuis hier à ce petit problème, qui me bloque totalement dans l'avancée de mon projet. En gros, je voudrais à terme réaliser un système de points gravitants les uns autour des autres, mais on en est pas là, et mon problème est bien moins avancé.

    J'ai deux fichiers as. L'un pour la classe de document, et un autre dans un package nommé myPackage. Le souci est tout bête, quand j'essaye d'accéder à des propriétés de ma scène, depuis mon fichier dans le package, Flash me dit qu'il ne peut pas accéder à des propriétés d'un objet nul.

    Je vérifie pourtant dans mon code que l'objet est ajouté à la scene avant de faire un trace de la scene, mais rien à faire...

    Voici mes 2 fichiers. D'abord la classe de document :

    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
    package {
     
    	import flash.display.MovieClip;
    	import flash.events.MouseEvent;
    	import flash.events.Event;
    	import flash.events.KeyboardEvent;
    	import myPackage.planete;
     
     
    	public class systemeSolaire extends MovieClip {
     
    		public var tableauPlanete:Array = new Array();          // Contient toutes les occurences de planètes sur la scene
    		public var compteurClic:int = 0;                        // Compte le nombre de planètes créées.
     
    		public function systemeSolaire() {
    			stage.addEventListener(MouseEvent.MOUSE_DOWN, newPlanet);   // Au clic, on lance la fonction de création de planète.
    		} // constructeur
     
    		public function newPlanet (e:MouseEvent)*{
    			compteurClic += 1;                                         // Compte 1 planète de plus
    			tableauPlanete[compteurClic] = new planete();              // Instancie l'objet planète
    			stage.addChild(tableauPlanete[compteurClic]);              // L'ajoute à la scene
    		} // fonction newPlanet
    	} // class
    } // pkg
    Et la classe de l'objet créé au clic :

    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
    package myPackage {
     
    	import flash.display.MovieClip;
    	import flash.events.KeyboardEvent;
    	import flash.events.MouseEvent;
    	import flash.events.Event;
     
    	public class planete extends MovieClip {
     
    		var addedToStage:Boolean = false;
     
    		public function planete ()*{
    			this.addEventListener(Event.ENTER_FRAME, sortie);
    			this.addEventListener(Event.ADDED_TO_STAGE , addedToStageCheck);
    		} // constructeur
     
    		public function sortie (e:Event):void {
    			if (addedToStage) {
    				trace((this.parent as MovieClip).compteurClic);
    			}
    		}
     
    		public function addedToStageCheck (e:Event) {
    			addedToStage = true;
    		}
    	} // class
    } // pkg
    L'erreur vient de la fonction sortie, dans le second fichier.
    Merci beaucoup de votre aide et de votre temps !

  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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    trace((this.parent as MovieClip).compteurClic);
    MovieClip n'a pas de propriété "compteurClic"

    ceci fonctionnera si tu n'as pas d'erreurs de ciblage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (this.parent as systemeSolaire).compteurClic

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 4
    Par défaut
    Merci tout d'abord de cette réponse.
    Malheureusement, flash me sort toujours l'erreur #1009.

    Je viens d'essayer cette technique http://www.seangw.com/wordpress/inde...ctionscript-3/ , mais sans résultat (Erreur #1065, La variable StageReference n'est pas définie).

    Je continue à chercher, et signalerai en cas de résolution de problème.

    Maxime

  4. #4
    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
    oups, y a aussi une erreur dans la classe "systemeSolaire".

    tu ne peux pas utiliser la propriété "stage" d'une occurence tant que celle ci n'est pas dans la liste d'affichage.

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 4
    Par défaut
    Ok... Bon, je n'ai pas vraiment trouvé d'ou venait le problème.

    Cependant, j'ai fini par tout mettre dans un seul objet, et me dispenser de la scene, en "descendant d'un niveau'. Ça a l'air de marcher !

    Merci pour votre aide. ; )

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 12/09/2005, 09h09
  2. retour d'objet par référence...
    Par sas dans le forum C++
    Réponses: 15
    Dernier message: 28/05/2005, 17h54
  3. [JACOB] Comment passer un objet par référence à une méthode
    Par zlavock dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 21/03/2005, 18h28
  4. Réponses: 8
    Dernier message: 26/08/2004, 18h59
  5. Cherche un objet un peu comme une TStringList
    Par Desraux dans le forum Langage
    Réponses: 6
    Dernier message: 27/07/2004, 14h04

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