STIC Discussion:STIC I - exercice 7 (Stella)
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?