Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS1/AS2
AS1/AS2 Questions relatives à la programmation ActionScript 1 et 2 (Cours AS2)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/08/2007, 02h17   #1
Nouveau Membre du Club
 
Avatar de bractar
 
Inscription : janvier 2004
Messages : 201
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 201
Points : 29
Points : 29
Par défaut [AS2] noms dynamiques

Bonjour,
je cree ceci
Code :
1
2
3
4
5
6
7
8
9
 
for (var i:Number = 0; i < sectionsArray.length; i++)
{	
	var menuItem:MovieClip = this.main_mc.menuContainer.createEmptyMovieClip("menuItem"+i, this.getNextHighestDepth()+i);
 
	menuItem.onRollOver = function() {
	//ICI
	};
}
Je voudrais recuperer _x du movie clip menuItem (la ou est ecrit ICI dans le code). Je n'y arrive pas. Comment faire?
J'ai essaye : this._x, _root["menuItem"+i], this["menuItem"+i]... mais sans succes.

Merci d'avance
__________________
Bractar the French fry eater
http://www.flale.com
bractar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 07h48   #2
Rédacteur
 
Avatar de The_Pretender
 
Homme Matthieu DELOISON
Formateur ActionScript Flash
Inscription : juin 2004
Messages : 645
Détails du profil
Informations personnelles :
Nom : Homme Matthieu DELOISON
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Formateur ActionScript Flash
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juin 2004
Messages : 645
Points : 3 673
Points : 3 673
Bonjour,

Citation:
menuItem.onRollOver = function() {
this._x = 35; // this correspond à ton movieclip
};
Normalement, this cible ton movieclip.
__________________
Découvrez : Tutoriels, ressources AS2 et AS3
La Méthode AS3 Facile pour développer des applications et jeux Flash en ActionScript 3 : ActionScript-Facile.com
The_Pretender est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 09h30   #3
Invité de passage
 
Inscription : novembre 2005
Messages : 3
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 3
Points : 3
Points : 3
j'aurai fait comme ca :

Code :
1
2
3
4
5
6
7
8
for (var i:Number = 0; i < sectionsArray.length; i++)
{	
	var menuItem:MovieClip = this.main_mc.menuContainer.createEmptyMovieClip("menuItem"+i, this.getNextHighestDepth()+i);
 
	this.main_mc.menuContainer["menuItem"+i].onRollOver = function() {
	trace(this._x); //normalement te retournera 0
	};
}
funnic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 19h19   #4
Nouveau Membre du Club
 
Avatar de bractar
 
Inscription : janvier 2004
Messages : 201
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 201
Points : 29
Points : 29
merci beaucoup!!!
__________________
Bractar the French fry eater
http://www.flale.com
bractar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 11h36   #5
Invité régulier
 
Inscription : août 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 9
Points : 6
Points : 6
Bonjour,
je me permet d'écrire sur ce sujet car c'est le même problème...mais c'est pas le même...

Explication: imaginons que je veuille reproduire un clavier en flash (sans les les caractères spéciaux, ni les touches telles que Ctrl ou Alt...), soit 26 boutons à créer... ce qui implique l'utilisation d'une boucle "for" pour les paresseux (c'est les plus malins :p).
Les lettres sont stockées dans un tableau de o à 25, mais là n'est pas le problème (on se contentera d'utiliser un "trace()").

Donc voici le code:
Code :
for(i = 0; i <26; i++) {<blockquote>_root["bouton" + i].onPress = function() {<blockquote>trace(i); }</blockquote>} </blockquote>
Un code simple, rapide, efficace et qui marche...mais pas comme je veux...
Je voudrais que l'indice i affiche l'indice correpondant au numéro du bouton (genre i = 1 pour le bouton 1), mais au lieu de ça, l'indice affiché est le dernier +1, soit 26...

Pourquoi le dernier indice est affiché et comment résoudre le problème ?
Merci d'aider un apprenti flasheur désirant apprendre et comprendre.
Kyuusei est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 12h58   #6
Invité de passage
 
Inscription : novembre 2005
Messages : 3
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 3
Points : 3
Points : 3
Tu trace ton i, hors celui ci est à 26 étant donné que ta boucle est finie,

Si tu veux tracer l indice j'aurai fait comme ceci :
Code :
1
2
3
4
5
6
7
 
for(i = 0; i <26; i++) {
    _root["bouton" + i].indice = i; (évite d'utiliser les _root un maximum)
    _root["bouton" + i].onPress = function() {
        trace(this.indice);
    } 
}
funnic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 14h13   #7
Invité régulier
 
Inscription : août 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 9
Points : 6
Points : 6
D'accord, je comprend mieux...En fait, "indice" est une variable que l'on assigne au MovieClip, c'est ça ? (on aurait pu mettre "._i" ou ".indiceActuel"...) Je ne savais pas que l'on pouvait faire cette manipulation...

J'utilise les _root. pour définir clairement le chemin de l'objet...j'ai du mal avec les chemins relatifs...(dans mon exemple, j'aurais dû mettre this["bouton" + i"] ?

En tout cas, merci pour la solution apportée !
Kyuusei est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h23.


 
 
 
 
Partenaires

Hébergement Web