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

Résolu
Grongol Messages postés 3 Date d'inscription mercredi 29 février 2012 Statut Membre Dernière intervention 1 mars 2012 - 29 févr. 2012 à 16:46
Grongol Messages postés 3 Date d'inscription mercredi 29 février 2012 Statut Membre Dernière intervention 1 mars 2012 - 1 mars 2012 à 13:58
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

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
1 mars 2012 à 13:37
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'
3
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
1 mars 2012 à 09:37
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'
0
Grongol Messages postés 3 Date d'inscription mercredi 29 février 2012 Statut Membre Dernière intervention 1 mars 2012
1 mars 2012 à 13:08
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.
0
Grongol Messages postés 3 Date d'inscription mercredi 29 février 2012 Statut Membre Dernière intervention 1 mars 2012
1 mars 2012 à 13:58
Ok merci, je vais faire ça!
0
Rejoignez-nous