« STIC Discussion:STIC I - exercice 7 (Stella) » : différence entre les versions
Aller à la navigation
Aller à la recherche
m (Page blanchie) |
Aucun résumé des modifications |
||
Ligne 1 : | Ligne 1 : | ||
== Array et déclaration de variable -- [[Utilisateur:Lucie.Marchon|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: | |||
<source lang="actionscript"> | |||
var reglettes:Array=new Array(Un,Deux,Trois,Quatre,Cinq,Six,Sept,Huit,Neuf,Dix); | |||
</source> | |||
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, | |||
<source lang="actionscript"> | |||
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;} | |||
} | |||
} | |||
} | |||
} | |||
</source> | |||
ç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? |
Version du 25 janvier 2011 à 01:37
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?