Accès au objet sur la scène en utilisant les Class [Résolu]

Signaler
Messages postés
143
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
3 septembre 2011
-
Messages postés
143
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
3 septembre 2011
-
Bonjour,

je suis au cour de création d'un jeux 2D rpg simple mais j'ai eu un petit problème

j'ai créer une classe appelé "mure" pour empêcher mon héros de passé sur les arbres les maison... etc


package 
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.*;

public class Blockdown extends MovieClip  
{
public function Blockdown() 
{
              this.addEventListener(Event.ENTER_FRAME,pushdown);
  trace("constructeur");  
}

private function pushdown(e:Event) 
{
               if(this.hitTestObject(stage.hero))
  {
  stage.hero.x--;
  }
}
}
}


l'erreur :1119: Access of possibly undefined property hero through a reference with static type flash.display:Stage.

donc il est impossible de accédé a la scène et poussé mon héros comment peut je corrigé cette erreur ?

merci d'avance

2 réponses

Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

Hello,

Dans ton constructeur il faut passer un evenement ADDED_TO_STAGE, et ensuite seulement tu pourras accèder au Stage.

A+

-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Messages postés
143
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
3 septembre 2011

merci Orange73

la correction du Class et la suivant pour ce qui cherche un exemple simple

hero: et le MovieClip de nom joueur
block1: et un MovieClip qui vous pousse si vous le toucher ("un Mure")

package 
{

import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.*;
import flash.display.Sprite;


public class Blockup extends MovieClip
{
private var core:Object;
        private var hitMe:Collection = new Collection();
public function Blockup()
{
//this.addEventListener(Event.ENTER_FRAME,testup);
this.addEventListener(Event.ADDED_TO_STAGE,onadd);
}
private function onadd(e:Event):void
{
core = MovieClip(root);
addEventListener(Event.ENTER_FRAME,loop);
}

private function loop(e:Event)
{
if (this.hitTestObject(core.hero))
{
core.hero.y-=6;
}

}

}
};


vous pouver ajouter des Bloke qui pousse a droite gauche en bat ...etc
vous aller juste poussez le hero a la direction contraire de votre mure
core.hero.x-=6; ou core.hero.x+=6;
...


merci