Error #1034: Echec de la contrainte de type : conversion de flash.events::Event@

Résolu
Signaler
Messages postés
3
Date d'inscription
mercredi 29 février 2012
Statut
Membre
Dernière intervention
1 mars 2012
-
Messages postés
3
Date d'inscription
mercredi 29 février 2012
Statut
Membre
Dernière intervention
1 mars 2012
-
Bonjour à tous. Je suis étudiant en informatique et je débute en flash... J'utilise adobe flash C5.5 et j'ai un projet de petit jeu avec un vaisseau qui doit détruire des ennemis en leur tirant dessus.

Voici mon code:

if (e.keyCode == Keyboard.SPACE){			//quand on appuie sur espace

var tirRayon:Tir_fusee=new Tir_fusee();		//instansiation d'un nouveau rayon
addChild(tirRayon);
tirRayon.x=fusée.x+125;		//placement du rayon en face de la fusée
tirRayon.y=fusée.y+30;
avanceTir(tirRayon);		//deplacement du rayon


} 


Je ne met pas toute la fonction ce n'est que la partie qui pose problème.

J'appelle la fonction avanceTir :


stage.addEventListener(Event.ENTER_FRAME , avanceTir);

function avanceTir(tirRayon:Tir_fusee):void{

tirRayon.x+=10;			//le rayon avance
}


Et quand je lance mon animation j'ai une erreur qui s'affiche à chaque frame : "TypeError: Error #1034: Echec de la contrainte de type : conversion de flash.events::Event@2977c241 en Tir_fusee impossible."


Alors comme ça s'affiche à chaque frame je présume que le problème vient de la fonction avanceTir et je pense que ça vient du paramètre, mais impossible de trouver ce qui ne va pas!!
J'ai essayer de déclarer tirRayon comme étant un Event et même en tant qu' Object mais à ce moment là j'ai une erreur du style "la methode x n'existe pas"...
Je ne sais plus quoi faire....

4 réponses

Messages postés
6138
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
11
Alors il faut que tu crées un tableau contenant tes tirs et que tu les contrôles à la suite en parcourant le tableau. Comme ça plus de soucis de variables.

Peg'
Messages postés
6138
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
11
Bonjour, dans ton cas c'est assez simple :
Tu déclenches une fonction par un écouteur via un Event.ENTER_FRAME, donc le paramètre de cette fonction doit forcément être de type Event. D'où ton message d'erreur.

Pour arranger ton soucis, il faut que tu cibles le tir autrement que via le paramètre de la fonction, qui est déjà attribué d'office.

Peg'
Messages postés
3
Date d'inscription
mercredi 29 février 2012
Statut
Membre
Dernière intervention
1 mars 2012

Ok je comprend mieux. Seulement comment je déclare ma variable tirRayon. Parce que que j'ai essayer de la déclarer en étant global mais à chaque fois que j'appuie sur espace le précédent rayon s'annule et un nouveau apparait. Je voudrais que à chaque fois que j'appuie sur espace une nouvelle instance se créer et ne remplace pas la précédente.
Messages postés
3
Date d'inscription
mercredi 29 février 2012
Statut
Membre
Dernière intervention
1 mars 2012

Ok merci, je vais faire ça!