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 01/04/2008, 10h58   #1
Candidat au titre de Membre du Club
 
Inscription : août 2007
Messages : 40
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 40
Points : 10
Points : 10
Par défaut pb attachMovie dans boucle

Bonjour à tous,

Je n'arrive pas à attacher un MovieClip(liaison) dans un MovieClip(appelons carte) crée par createEmptyMovieClip.
Via MovieClipLoader je charge un fond de carte dans un conteneur (créé dynamiquement), ensuite je dois placer des point (clip de liaison) sur le fond de carte.
J'arrive à le faire sans problème si je créer un MovieClip vide mais je n'y arrive pas dans le movieClip "carte". Un bout de code vaut mieux que des explications :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
var conteneur:MovieClip = this.createEmptyMovieClip("marqueurs", this.getNextHighestDepth());
var ecouteur_carte:Object = new Object();
 
 
ecouteur_carte.onLoadInit = function(target_mc:MovieClip):Void { 
 
	i:Number = 0;
	for(i=0; i < total; i++) {
 
		//placement des marqueurs
		if (type[i] == 'ville') {
                        //le problème est ici, rien n'apparait ! //
			this.marqueurs.attachMovie("mc_ville", "ville"+i, this.marqueurs.getNextHighestDepth());
			this.marqueurs["ville"+i]._x = positionX[i];
			this.marqueurs["ville"+i]._y = positionY[i];
 
			marqueurs["ville"+i].onRollOver = function() {
				taille(this, 5, 130, true);
				numero_legende = this._name.substr(5, 1); //astuce car i n'est pas interprete
				legende(commentaire[numero_legende], this);
			}
 
			marqueurs["ville"+i].onRollOut = function() {
				taille(this, 5, 100, false);
				removeMovieClip("ma_legende");
			}
 
			marqueurs["ville"+i].onRelease = function() {
				numero = this._name.substr(5, 1);
				affiche_texte(commentaire[numero]);
				trace("J'ai cliqué sur le MovieClip :"+"ville"+numero);
			}
 
		}//fin du si
 
	}//fin du for
 
}//onLoadInit
 
 
 //chargement du xml
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("marqueur.xml");
 
 //chargement du fond de carte
var carte:MovieClipLoader = new MovieClipLoader();
carte.addListener(ecouteur_carte);
carte.loadClip("carte.jpg", conteneur);
je vraiment perdu, à l'aide !!!!!!!!!!!!

Merci à tous
acidline est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 11h39   #2
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 606
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 606
Points : 2 233
Points : 2 233
Salut,

je pense que ton problème vient de l'utilisation de this dans la fonction onLoadInit.
(vérifie en traçant la valeur de this.marqueurs)

pour accéder à ton clip marqueurs, tu peux utiliser le paramètre target_mc,
je pense que target_mc._parent devrait faire l'affaire.
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 11h58   #3
Candidat au titre de Membre du Club
 
Inscription : août 2007
Messages : 40
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 40
Points : 10
Points : 10
en effet le "this" fait référence au onLoadInit et non a mon objet mais j'ai essayé avec ton ciblage et ça fonctionne !

c'est parfait !

merci beaucoup
acidline 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 19h04.


 
 
 
 
Partenaires

Hébergement Web