Problême removeChild

moranddi Messages postés 2 Date d'inscription vendredi 21 janvier 2011 Statut Membre Dernière intervention 2 février 2011 - 27 janv. 2011 à 08:10
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);
}
}
}
}
}
}
A voir également:

2 réponses

_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
31 janv. 2011 à 11:14
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.
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
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
Rejoignez-nous