Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
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 14/04/2011, 17h16   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2010
Messages : 78
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 78
Points : 13
Points : 13
Par défaut probleme passage variables swf externe

Bonjour,

Je code en AS3 (procédural) depuis 2ans et je me lance dans la POO.
Je rencontre un soucis sur la création de mes classes.

Voici le problème rencontré:

Je charge des swf en boucle dans différents conteneurs de mon swf parent
Je passe (tente de passer) des id à ces swf child.
Or seul le dernier id de ma boucle est passé en paramètre.
Je ne comprends pas pourquoi.

Voici quelques lignes de code:

Class Main
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
public class Main extends MovieClip 
	{
		public var conteneurSwf:ChargerSwf;
		public var mediaId:Object = {sarennes:"71", rgb2100:"21", signal:"90", marmottes2g2:"70", marmottes2g1:"69", ambre2700:"128", ambre3060:"129", ambre3330:"64", marmottes:"167", dmcg1:"170", romains:"168", alpauris:"169"};
		public var idMediaRgb:String;
 
		public function Main() 
		{
 
			for each(var media:MovieClip in plan.rgb)
			{
				idMediaRgb = mediaId[media.name.toString()]; //id pour le swf child
				conteneurSwf = new ChargerSwf('msgLwRgb.swf', 0);
				media.addChild(conteneurSwf);
			}
 
		}
 
        }
Class ChargerSwf:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
public class ChargerSwf extends Sprite 
	{
		private var chargeur:Loader;
		private var adresseSwf:URLRequest;
 
		public function ChargerSwf(nomSwf:String, xPos:Number) 
		{
			adresseSwf = new URLRequest(nomSwf);
			chargeur = new Loader();
			chargeur.load(adresseSwf);
			chargeur.x = xPos;
			addChild(chargeur);
		}
 
 
	}
Dans les swf chargé:
Code :
1
2
3
4
5
6
7
8
 
var id:String;
 
try
{
	// on récupère la variable id du swf appelant
	id= this.parent.root["idMediaRgb"];
}
Je récupère ici (en faisant un trace), uniquement l'id du dernier foreach.

Qq'un aurait-il une idée.

Merci beaucoup.
flo73 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 10h28   #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,

Pour passer des variables à des swf externes, tu devrais utiliser de la diffusion d'évènements.

Les framework PureMVC et Pixlib te faciliteront la tâche.
__________________
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 19/04/2011, 07h44   #3
Membre du Club
 
Inscription : avril 2011
Messages : 58
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 58
Points : 56
Points : 56
Ben c'est normal. Tu fais une boucle où tu passe tout tes id et lance tes chargements. Les chargements commencent à coté dans un autre thread et pour ton code ca commencera au plus tôt à la prochaine image. C'est à dire une fois que ta boucle sera finie.

Vu que tu charge tes objets dans des levels différents, tu peut utiliser le level de chaque objet pour charger le texte correspondant. Genre :
dans le root
Code :
1
2
3
4
5
6
7
 
textes=["aaa","bbb",....]
//
for(i=0;i<20;i++){
   //nom_swf, level
   charger("machin.swf",i)
}
puis dans chaque clip

Code :
this.texte=parent.textes[this.level];
bokan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h16.


 
 
 
 
Partenaires

Hébergement Web