Accueil > Forum > > > > Récupération Array onPress
Récupération Array onPress
mercredi 10 décembre 2008 à 22:53:06 |
Récupération Array onPress

Orange73
|
Hello, Voila je block sur un truc que je savai faire... mais je me souviens plus LOL. Je n'arrive plus a faire afficher mon trace :var nbItems = 6; var spaceY = 10; var baseY = 10;
for(i=0;i<nbItems;i++){ myArray = new Array(); myArray[i] = this.attachMovie("btn","btn"+i,i); myArray[i]._x = 20; myArray[i]._y = baseY; baseY += myArray[i]._height + spaceY; myArray[i].baseItemY = myArray[i]._y; myArray[i].onPress = function(){ trace(myArray[3]._name); } }Petite aide plz 
|
|
mercredi 10 décembre 2008 à 23:24:04 |
Re : Récupération Array onPress

crackter
|
salut,
c'est comme d'habitude un soucis de portée de variable.
Il faut créer l'array en dehors de la boucle car le garbage collector efface le tableau.
donc :
var myArray=new Array();
for (var i:Number=0;i<nbItems;i++) {
myArray.push(....);
...
...
}
|
|
mercredi 10 décembre 2008 à 23:37:58 |
Re : Récupération Array onPress

Orange73
|
Ok merci, tu as raison. juste pour confirmation, dans mon exemple, je dois pas faire de push ? |
cela suffit ?
var nbItems = 6; var spaceY = 10; var baseY = 10; var myArray = new Array();
for(i=0;i<nbItems;i++){ myArray[i] = this.attachMovie("btn","btn"+i,i); myArray[i]._x = 20; myArray[i]._y = baseY; baseY += myArray[i]._height + spaceY; myArray[i].baseItemY = myArray[i]._y; myArray[i].onPress = function(){ trace(myArray[3]._name); } }
|
Comment tu aurais fait toi ?
|
|
jeudi 11 décembre 2008 à 00:13:33 |
Re : Récupération Array onPress

Orange73
|
Sinon comment je peux faire pour recuperer l'array entier (en rouge) dans ma fonction onPress ?
J'ai testé sa... marche po... normal plus de boucle.
for(i=0;i<nbItems;i++){ myArray.push(this.attachMovie("btn","btn"+i,i)); myArray[i]._x = 20; myArray[i]._y = baseY; baseY += myArray[i]._height + spaceY; myArray[i].baseItemY = myArray[i]._y; myArray[i].onPress = function(){ trace(myArray[i]._name); } }
|
|
jeudi 11 décembre 2008 à 00:28:22 |
Re : Récupération Array onPress

Orange73
|
myArray[i].onPress = function(){ trace(myArray); }

Maintenant je souhaiterai faire une condition dans ce onPress :
if( myArray[i].id > this.id ){ // blablabla } Bien sur sa marche pas xD... comment puis-je faire ?
|
|
jeudi 11 décembre 2008 à 12:41:51 |
Re : Récupération Array onPress

crackter
|
Salut,
toujours pareil :). le myArray[i].onPress, la fonction d'onpress va "pointer" sur myArray[i], donc i n'est plus connue puisqu'il appartenait à la boucle. Soit tu met une valeur fixe à la place de i, soit tu utilises une variable "temp" à la création du genre myArray[i].tag=i
|
|
jeudi 11 décembre 2008 à 16:00:29 |
Re : Récupération Array onPress

Orange73
|
Hello, merci pour ta reponse :)
mais c'est ce que j'ai essayer de faire :
myArray[i].id = i;
myArray[i].onPress = function(){ if( myArray[i].id > this.id ){ // blablabla } }
sa marche pas quand meme du fait que je souhaite executer un script seulement pour les elements de myArray qui sont une id superieur a l'element myArray cliké... !
|
|
jeudi 11 décembre 2008 à 22:59:39 |
Re : Récupération Array onPress

crackter
|
myArray[i].id = i;
myArray[i].onPress = function(){ if( myArray[i].id > this.id ){ // blablabla } }
le i dans le onPress est indéfinie, même si tu l'a créé dans la boucle.
En fait il est créé dans la boucle, il existe bien à ce moment là, mais au moment où on press l'élément contenu dans myArray, i est undefined, donc cela correspond à un myArray[undefined] donc undefined > this.id, et forcément ça pose quelques soucis :).
Je ne comprend pas pourquoi tu veux comparer myArray[i].id et this.id puisque dans la logique que tu veux employer, les 2 sont forcément équivalents. Si i vaut 2 tu voudrais faire :
myArray[2].id=2; myArray[2].onPress=function() { if (myArray[2].id>this.id) { // donc this.id>this.id (puisqu'on est dans le onpress de myArray[2], donc 2>2, donc il ne pourra jamais être lancé. // } }
il faudrait que tu essaye plutot une variable qui sauvegarde le clip dernièrement cliqué, ou son id. Essaye un truc du genre :
var nbItems:Number = 6; var spaceY:Number = 10; var baseY:Number = 10; var myArray:Number = new Array(); var lastClick:Number = -1;
for(var i:Number=0;i<nbItems;i++){ var monclip:MovieClip = this.attachMovie("btn","btn"+i,i); monclip._x = 20; monclip._y = baseY; baseY += monclip._height + spaceY; monclip.baseItemY = monclip._y; monclip.onPress=function() { if (lastClick<this.id) { lastClick=this.id; //instructions... } } myArray.push(monclip); }
|
|
jeudi 11 décembre 2008 à 23:38:22 |
Re : Récupération Array onPress

Orange73
|
merci pour ta reponse mais mon probleme n'est pas car je sais faire tous cela  en fait mon but est de faire bouger tout mes boutons de _x + 10 dont l'id est > au bouton cliqué... je pense au'il faut que je repasse par une boucle for dans mon onPress ou alors for in si j'utilise un tablequ... je voit pas d'autre solution... Et toi ?
|
|
vendredi 12 décembre 2008 à 00:21:05 |
Re : Récupération Array onPress

crackter
|
Réponse acceptée !
monclip.onPress=function() { for (var val:String in myArray) { if (myArray[val].id>this.id) myArray[val]._x +=10; } }
monclip.onPress=function() { for (var i:Number=0;i<myArray.length;i++) { if (myArray[i].id>this.id) myArray[i]._x +=10; } }
|
|
Cette discussion est classée dans : var, array, onpress, myarray, basey
Répondre à ce message
Sujets en rapport avec ce message
If "valeur" est dans array() .... [ par mattdelavega ]
BonjourJ'ai des tableaux avec tous les départements françaisCeux ci sont répartis en 4 Zones : var Zone_1 = new Array
Chifres aléatoires non répétés [ par n_lefebvre ]
Salut,Je débute un peu dans Flash et ActionS. Je dévelope un clip qui doit attribuer 22 chiffres de maniere aléatoire a dans un liste en Array, mais i
affiche_photos aléatoirement [ par kartoon ]
Bonjour,Voilà j'ai un code qui va chercher des photos dans un fichier nommé "images" dans lequel se trouve 11 photos au format jpg, et qui pioche les
Création en manipulation de clip en AS [ par ypauleau ]
J'ai cherché sur le net et j'ai toujours pas compris, Voici mon problème : Je cherche à créer des instances d'un clip que j'ai créer dans la bibliothè
Problème de chargement array [ par adramele ]
Bonjour à tous !Je suis face à un soucis... je débute. Ce code va chercher une variable faite d'une séquence avec virgule dans un fichier php pour ens
array.shift [ par kapac ]
bonjour; j'ai un probleme avec shift si j'écris le code suivant: var damier:Array = new Array(1,2,3,4,5); var nombre:Object=damier.shift(); avec les
Decplacement de clips en saccade [ par grenouilleAB ]
Bonjour J'ai un problème de déplacament de clips en saccades. Les clip sont integrés dans la scène à partir de la bibliothède via attachMovie. Le prob
array de classes??? [ par Jamesbound ]
Bonjour,J'ai créé une classe disons: PersonneJ'essais maintenant de l'inclure dans une collection de personne (ou autrement dit un Array de Personnes
Problème Boutons, Array, et functions en AS3 [ par chillie ]
Bonjour à tous.Je suis un train de réaliser un site internet sous flash. Pour des questions pratique de gestion du son je vais tout refaire en AS3 ().
array [ par kapac ]
bonjour;qui pourrait me renseigner ce qui ne marche pas ds le code suivant:mya = new Array();mya2 = new Array();var st:String;var y:Number=0;for(x=0;x
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice CRéATION D'UNE BASE DE DONNéE SOUS SQL AZURECRéATION D'UNE BASE DE DONNéE SOUS SQL AZURE par junarnoalg
Sans rentrer dans les détails, je me propose ici de faire un rapide tour de ce que propose SQL Azure.
SQL Azure est avant tout un service d'hébergement de base de données relationnelles construit sur SQL Server. Il permet aux entreprises d...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|