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 03/05/2006, 15h10   #1
Invité régulier
 
Inscription : juillet 2005
Messages : 40
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 40
Points : 9
Points : 9
Par défaut [FLASH MX2004] this et problème de référence

Bonjour !

J'ai plusieurs objets dont le comportement est identique. Pour éviter de placer un script sur chaque objet, j'ai écrit une fonction. Dans celle-ci, je souhaite (entre autre) récupérer le nom de l'objet quand on clique dessus, j'utilise pour cela :
Mon problème : si le script est placé au niveau de l'objet, je récupère bien la référence à l'objet alors que dans la fonction, placée sur la 1re image de l'animation, "this" ne me renvoie rien .

Merci d'avance de votre aide !
cristolb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2006, 16h00   #2
Membre Expert
 
Avatar de Demco
 
Inscription : mai 2002
Messages : 1 396
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2002
Messages : 1 396
Points : 1 411
Points : 1 411
Donne nous plus de code.

Par hasard essaie:
Code :
 nomObjet=this._parent._name;
En esperant t'aider.
__________________
J'aime les gâteaux.
Demco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2006, 19h38   #3
Invité régulier
 
Inscription : juillet 2005
Messages : 40
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 40
Points : 9
Points : 9
Merci de ta réponse mais ça ne fonctionne pas !

Voici un peu plus de code. Chaque objet, situé sur le calque "objet", de la 1re image le contient. Mon but est de récupérer le nom de l'objet, d'en prendre le dernier caractère et de réutiliser celui-ci pour construire le nom d'un fichier son à jouer :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
on (release)
{
 nomObjet=this._name;
 numObjet=nomObjet.substr((nomObjet._name.length)-1,1);
 
_root["objet"+numObjet]._visible=false;
 
stopAllSounds();
 var son= new Sound(); 
 var sonAJouer="son"+numObjet+".mp3";
 son.loadSound(sonAJouer,true);
 son.setVolume (100);
}
Et j'ai donc essayé de mettre dans le calque "actions", également sur la 1re image de l'animation la fonction contenant exactement ce code, appelée dans chaque objet par : Voilà, je ne vois pas trop la solution
cristolb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2006, 20h31   #4
Membre Expert
 
Avatar de Demco
 
Inscription : mai 2002
Messages : 1 396
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2002
Messages : 1 396
Points : 1 411
Points : 1 411
Si effectivement tu appelles cette fonction depuis l'objet, passe le nom de l'objet en paramètre de la fonction.

En espérant t'aider.
__________________
J'aime les gâteaux.
Demco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2006, 20h45   #5
Membre habitué
 
Étudiant
Inscription : avril 2005
Messages : 258
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 258
Points : 127
Points : 127
slt,
Code :
1
2
3
 
 nomObjet=this._name;
 numObjet=nomObjet.substr((nomObjet._name.length)-1,1);
nomObjet est un String ... donc
ca peu pas marche
la methode ._name c pour les movies clip

suckthewindow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2006, 22h33   #6
Invité régulier
 
Inscription : juillet 2005
Messages : 40
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 40
Points : 9
Points : 9
Ouf !

Ca marche effectivement en passant le nom de l'objet, qui est bien un movie clip, en paramètre à la fonction :
Code :
1
2
3
4
on (release)
{
 _root.objetAvecSon (this._name);
}
Je récupére donc bien dans la fonction objet0, objet1... :
Code :
1
2
3
4
5
function objetAvecSon (nomObjet)
{
  trace (nomObjet);
//autres instructions
}
Merci de ton aide Demco !
cristolb 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 15h15.


 
 
 
 
Partenaires

Hébergement Web