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

Messages postés
143
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
3 septembre 2011
- - Dernière réponse : jihednond
Messages postés
143
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
3 septembre 2011
- 2 janv. 2011 à 16:28
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
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
3
Merci
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)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 220 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Orange73
Messages postés
143
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
3 septembre 2011
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 220 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jihednond