« STIC Discussion:STIC I - exercice 9 (Stella) » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
m (Page blanchie)
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
== Array et changement de frame -- [[Utilisateur:Lucie.Marchon|Lucie.Marchon]] 28 janvier 2011 à 21:30 (CET) ==
Mais j'ai un problème quand même:
j'ai défini une fonction supprimerGrille();
<source lang=actionscript>
function supprimerGrille()
{        for(i=0;i<gridcase.length;i++)
        {
        gridcase[i].parent.removeChild(gridcase[i]);
        gridcase.unshift();
        }
}
</source>
ou ça, qui marche très bien aussi:
<source lang=actionscript>
function supprimerGrille()
{        for each(case_de_grid in gridcase)
        {
        case_de_grid.parent.removeChild(case_de_grid);
        }
        for each(case_de_grid in gridcase)
        {
        gridcase.shift();
        }
}
</source>


Et une supprimerReglette();
<source lang=actionscript>
function supprimerReglettes()
{       
        for(i=0;i<reglettes_instances.length;i++)
        {
        reglettes_instances[i].parent.removeChild(reglettes_instances[i]);
        gridcase.unshift();
        }
}
</source>
Cela  marche tout à fait bien dans la première frame où je les utilise. Mais  quand je veux les réutiliser dans une autre frame où j'ai recréé une  grille, avec tout le même fonctionnement ça ne marche plus, ça me met:
"Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul"
Ce  qui doit signifier que je demande d'enlever des "enfants" là où il n'y  en a pas où je sais pas quoi, mais je ne m'y retrouve plus et ça fait  bien longtemps que la demi heure est passée.. Je trouve cela d'autant  plus bizarre qu'avec la fonction qui utilise "each", il ne devrait pas y  avoir de problème de dépassement. Je ne sais pas d'où vient ce  problème, les fonctions sont toutes les mêmes, il n'y a qu'un changement  de frame.
Je vous envoie mon  [http://tecfaetu.unige.ch/etu-maltt/qwerty/marchonl/STIC/ex9/ fichier],  mais il est un peu bordélique en l'état, malgré la documentation que  j'ai essayé de tenir à jour.

Version du 29 janvier 2011 à 02:52

Array et changement de frame -- Lucie.Marchon 28 janvier 2011 à 21:30 (CET)

Mais j'ai un problème quand même: j'ai défini une fonction supprimerGrille();

function supprimerGrille()
{        for(i=0;i<gridcase.length;i++)
        {
        gridcase[i].parent.removeChild(gridcase[i]);
        gridcase.unshift();
        }
}

ou ça, qui marche très bien aussi:

function supprimerGrille()
{        for each(case_de_grid in gridcase)
        {
        case_de_grid.parent.removeChild(case_de_grid);
        }
        for each(case_de_grid in gridcase)
        {
        gridcase.shift();
        }
}

Et une supprimerReglette();

function supprimerReglettes()
{        
        for(i=0;i<reglettes_instances.length;i++)
        {
        reglettes_instances[i].parent.removeChild(reglettes_instances[i]);
        gridcase.unshift();
        }
}

Cela marche tout à fait bien dans la première frame où je les utilise. Mais quand je veux les réutiliser dans une autre frame où j'ai recréé une grille, avec tout le même fonctionnement ça ne marche plus, ça me met: "Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul" Ce qui doit signifier que je demande d'enlever des "enfants" là où il n'y en a pas où je sais pas quoi, mais je ne m'y retrouve plus et ça fait bien longtemps que la demi heure est passée.. Je trouve cela d'autant plus bizarre qu'avec la fonction qui utilise "each", il ne devrait pas y avoir de problème de dépassement. Je ne sais pas d'où vient ce problème, les fonctions sont toutes les mêmes, il n'y a qu'un changement de frame. Je vous envoie mon fichier, mais il est un peu bordélique en l'état, malgré la documentation que j'ai essayé de tenir à jour.