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?