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 03/01/2008, 02h29   #1
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 73
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 73
Points : 36
Points : 36
Par défaut Paramètre à fonction événement

Bonjour,

voila je me tire les cheveux depuis pas mal de temps sur un problème.

Je suis actuellement en train de faire un système qui charge des images avec un texte. Tout ca à partir d'un XML.

j'arrive donc à charger les images et le texte dans deux tableaux. Mais voila, je n'arrive pas à faire que les index dans les deux tableaux soient visent la même association texte/image.
voici un exemple du resulat final:

mon tableau de texte:
[0] voyage au bahamas (photo n°1)
[1] voyage au bermudes (photo n°2)
[2] voyage en australie (photo n°3)
[3] voyage en france (photo n°4)
[4] voyage en espagne (photo n°5)
[5] voyage en italie (photo n°6)
[6] voyage en allemagne (photo n°7)
[7] voyage en antartique (photo n°8)

mon tableau de photos:
[0] photo n°6
[1] photo n°3
[2] photo n°4
[3] photo n°2
[4] photo n°1
[5] photo n°5
[6] photo n°8
[7] photo n°7

et moi je voudrai pour le tableau de photo:
[0] photo n°1
[1] photo n°2
[2] photo n°3
[3] photo n°4
[4] photo n°5
[5] photo n°6
[6] photo n°7
[7] photo n°8

voici le code:
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
var tableauImages:Array;
var tableauTitre:Array;
 
var loaders:Array;
 
var i:uint = 0;
for each(var node:XML in monxml..listephotos.photo)
{
	//on commence le chargement des images.
	loaders[i] = new Loader();
	loaders[i].load(new URLRequest(node.@image));
	loaders[i].contentLoaderInfo.addEventListener(Event.COMPLETE, finDuChargementImage);
	loaders[i].contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, indiquerErreurChargement);
	tableauTextes[i] = node.@titre;
	i++;
}
 
var nombreImageFinie:uint = 0;
 
function finDuChargementImage(e:Event)
{
	tableauImages[nombreImageFinie] = new Bitmap(e.target.content.bitmapData);
	nombreImageFinie++;
}
voila, comment je peut signaler ou savoir que finDuChargementImage traite l'image numeroté don le loader a pour index i.


Merci d'avance pour toute aide apportée !

Lucyberad
Lucyberad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 00h48   #2
Nouveau Membre du Club
 
Inscription : décembre 2007
Messages : 32
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : décembre 2007
Messages : 32
Points : 34
Points : 34
Envoyer un message via MSN à rockntrek
Je ne comprends pas très bien ta question mais peut-être que ceci répondra à ta question :

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
 
var numero:int = new int()
 
for each(var node:XML in monxml..listephotos.photo)
{
	//on commence le chargement des images.
	loaders[i] = new Loader();
 
        // Tu assignes la variable "numero" à tes loaders
        loaders[i].numero = i;
 
	loaders[i].load(new URLRequest(node.@image));
	loaders[i].contentLoaderInfo.addEventListener(Event.COMPLETE, finDuChargementImage);
	loaders[i].contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, indiquerErreurChargement);
	tableauTextes[i] = node.@titre;
	i++;
}
 
var nombreImageFinie:uint = 0;
 
function finDuChargementImage(e:Event)
{
        // Ici tu recois le "Loaders" appellé
        trace(e.currentTarget.numero);
 
	tableauImages[nombreImageFinie] = new Bitmap(e.target.content.bitmapData);
	nombreImageFinie++;
}
rockntrek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 19h24   #3
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 73
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 73
Points : 36
Points : 36
Mon principal soucis vient du fait que quand la fonction FinDuChargementImage est appellée, j'ai besoin de savoir quel loader l'appelle, mais surtout l'index i du loader dans le tableau.

si je comprend bien ton astuce, on peut creer une variable dans le loader (numero contenant i) et la récuperer dans la fonction de l'evenement (ici appelé finDuChargementImage) par e.currentTarget.numero.
e.currentTarget étant donc une reference vers le loader.

bon ben je vais tester ca et je te dit si ca a marché (ou pas ).
Lucyberad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 23h33   #4
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 73
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 73
Points : 36
Points : 36
En fait c plus hardu !
la c'est de l'AS2.

mais grâce à toi j'ai eu une piste sur comment faire.
puisque target renvoie le loader, j'ai tout simplement fait ma propre classe heritant de loader avec un nombre personalisé en paramètre suplémentaire !

voila, merci de m'avoir accordé un peu de ton temps !
Lucyberad 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 13h45.


 
 
 
 
Partenaires

Hébergement Web