Problême removeChild

Messages postés
2
Date d'inscription
vendredi 21 janvier 2011
Statut
Membre
Dernière intervention
2 février 2011
- - Dernière réponse : moranddi
Messages postés
2
Date d'inscription
vendredi 21 janvier 2011
Statut
Membre
Dernière intervention
2 février 2011
- 2 févr. 2011 à 12:33
Salut à tous, je fait un petit casse-brique et je voudrai qu'au moment ou la balle touche une brique il faille répondre à un calcul. Jusque là aucun soucis mais une fois que je veux récupérer la réponse et rependre le jeu il me met cet erreur:

Le paramètre child ne doit pas être nul.
at flash.display::DisplayObjectContainer/removeChild()
at Function/()

voici ma fonction qui contient tous:

function DeplacerTout(event:Event)
{
DeplacementBalle();
DeplacementRaquette();

//tester les briques
for(var L:Number=0;L<10;L++)
{
for(var C:Number=0;C<10;C++)
{
if (Niveau1[L][C]==1)
{
if (balle.hitTestObject(getChildByName("brique"+L+C)))
{
stop();
stage.removeEventListener(Event.ENTER_FRAME, DeplacerTout);
Mouse.show();

//CreerCalcul
var monTexte:TextField = new TextField();
monTexte.text="4x3=";
monTexte.type = TextFieldType.INPUT;
monTexte.y=420;
monTexte.x=320;
addChild(monTexte);
//CreerBouton
var btnRepondre:Reponse = new Reponse();
btnRepondre.y=410;
btnRepondre.x=420;
addChild(btnRepondre);

btnRepondre.addEventListener ( "click", VerifCalcul );
function VerifCalcul( pEvt:MouseEvent ):void
{
var ReponseJ : String = "4x3=12";
//si le calcule est juste
if(monTexte.text == ReponseJ)
{
removeChild(getChildByName("brique"+L+C));
Niveau1[L][C]=0;
NbBrique-=1;
CalculeRebondHorizontal();
Mouse.hide();
removeChild(getChildByName("monTexte"));
removeChild(getChildByName("btnRepondre"));
gotoAndPlay(7);

}
//sinon le calcule est faux
else
{
CalculeRebondHorizontal();
Mouse.hide();
removeChild(getChildByName("monTexte"));
removeChild(getChildByName("btnRepondre"));
gotoAndPlay(7);
}
}

//si il n'y a plus de brique
if (NbBrique<=0)
{
gotoAndPlay(10);
}
}
}
}
}
}
Afficher la suite 

2 réponses

Messages postés
1637
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
0
Merci
Ola,

Dure de lire ce code sans tabulations ... mais si tu veux éviter l'erreur de script (attention ca réglera pas ton problème logique) tu peux vérifier si l'objet existe avant de l'enlever :
au lieu de
removeChild(getChildByName("monTexte")); 


tu mets :
var child:DisplayObject = getChildByName("monTexte");
if (child) removeChild(child);

a faire partout ou tu fait tes removeChild.
et voilou ;)

++

Ben
Amalgam Production - Développement Web Flash PHP MySQL - Identité visuel et audiovisuel.
Commenter la réponse de _benjy
Messages postés
2
Date d'inscription
vendredi 21 janvier 2011
Statut
Membre
Dernière intervention
2 février 2011
0
Merci
merci beaucoup pour ta réponse, je n'ai pas encore pu testé mais cela me semble une bonne solution. Je suis vraiment désolé pour les tabulation j'y ai pas fait gaffe quand je l'ai posé. encore merci et a plus.

Dimitri
Commenter la réponse de moranddi