STIC Discussion:STIC I - exercice 7 (Stella)

De EduTech Wiki
Aller à la navigation Aller à la recherche

Array et déclaration de variable -- Lucie.Marchon 25 janvier 2011 à 21:30 (CET)

Bonjour! Je fais une sorte de jeu dont la base sont les réglettes de cuisenaire. Il y a dix réglettes, et à toutes sont appliquées un certain nombre de fonctions, qui se ressemblent. Je pensais que je pourrais mettre cela en array et que ça simplifierait les choses. Avec l'array définie:

var reglettes:Array=new Array(Un,Deux,Trois,Quatre,Cinq,Six,Sept,Huit,Neuf,Dix);

qui sont les classes de chaque réglettes, ça marche quand je met reglettes[1] ou reglettes[4], jusqu'à 9, mais ça ne marche plus quand je mets i,

for(var i=0;i<10;i++)
{
/*quand on clique sur le bouton un cela appelle une fonction..*/
boutons[i].addEventListener(MouseEvent.CLICK, Creer);
/*...qui crée une réglette de taille 1, à peine un peu plus loin que le bouton lui-même, avec un fonction drag et drop incorporée*/
function Creer(event:MouseEvent):void
{
    
var un = new reglettes[i];
/*une nouvelle occurrence de l'objet "un" est créée sur la scène*/
addChild(un);
/*il se comporte comme un bouton*/
un.buttonMode=true;
/*Il apparaît à peine un peu en décalage du bouton*/
un.x=50;
un.y=50;
/*on lui attribue une fonction drag and drop pour qu'on puisse le déplacer partout sur le scène*/
/*drag quand clic*/
un.addEventListener(MouseEvent.MOUSE_DOWN, Drag);
/*drop quand on relâche*/
un.addEventListener(MouseEvent.MOUSE_UP, Drop);

function Drag(evt:MouseEvent):void
{
    var object = evt.target;
    object.startDrag();
}

function Drop(evt:MouseEvent):void
{
    var object = evt.target;
        object.stopDrag();
        
        if (230 < un.y && un.y< 250)
        {un.y=240;}

        /*combine pour que la réglette se place correctement dans la case la plus proche même si on la lâche un tout petit peu à côté*/
        for(var n=0;n<12;n++)
        {
        if (190+n*40 < un.x && un.x< 230+n*40)
        {un.x=200+n*40;}
        }
}
}


}

ça me met alors "Tentative d'instanciation sur un élément non constructeur". Je ne vois pas ce que i à de moins constructeur que 3! Comment je devrais faire pour mettre ça en array?

J'ai essayé de déclarer la variable également avec une donnée mise dans une array, qui pourrait varier avec le i, mais il ne veut pas de string.

(bouton[i] est aussi une array, mais ça a l'air de bien marcher, ce sont les nom d'instance de boutons qui sont sur la scène).