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 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVéTECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVé par ROMELARD Fabrice
Speaker : Guillaume Rochette Cette session est dédiée à fournir le retour sur la mise en place d'un cloud privé (IaaS) par Osiatis pour son compte ou celui de ses clients. Ce projet s'est déroulé sur 4 mois et a permis de faire évoluer...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYSTECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYS par ROMELARD Fabrice
Speakers : Lionel Limozin et Alain Marty La session commence par une découverte de SharePoint à travers la mise en place d'un environnement SharePoint pour la gestion des Sessions animées par BeWise. Le besoin est très ba...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PERSPECTIVE 3.0 POUR SILVERLIGHT 5.0PERSPECTIVE 3.0 POUR SILVERLIGHT 5.0 par odewit
Je viens de publier la version 3.0 de Perspective pour Silverlight, qui regroupe un portage sous Silverlight 5.0 des fonctionnalités de Perspective 2.0, le framework 3D de haut-niveau introduit récemment et de nouveaux exemples de code. En voici la li...
Cliquez pour lire la suite de l'article par odewit
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|