Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash
Flash Forum d'entraide sur la technologie Flash (Cours, FAQs, Sources)
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 12/06/2007, 12h20   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 64
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 64
Points : 10
Points : 10
Par défaut :: Portée de variables dans une boucle ::

Bonjour,

Je suis décidément une buse en actionscript...

Je cherche à importer dans un flash deux images aléatoires, dont les chemins sont fournis par un script PHP. Aucun problème pour récupérer les chemins à l'intérieur d'une boucle placée sur le onLoad. Mais c'est là que ça se corse: ces chemins sont des variables stockées dans la boucle, et impossible de les en faire sortir. Et je n'arrive pas à charger mes images depuis la fonction, je n'y arrive que si je les charge après. En bref, je patauge.

J'ai essayé de rendre les variables globales avec _global., mais ça marche pô. J'ai essayé de déplacer mon LoadMovie dans la fonction, ça ne marche pas non plus. Je pense que tout ça est du à une lacune fondamentale de ma part... Bref, 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
25
26
27
28
29
30
31
32
_quality = "BEST";
 
//function random
lv=new LoadVars();
lv.onLoad = function() {
	_global.img1 = "../img_ref/"+lv.id1+".jpg";
	_global.img2 = "../img_ref/"+lv.id2+".jpg";
};
 
 
lv.load("http://www.asdepique.com/img_rand.php");
 
_root.ref1.loadMovie(_global.img1);
_root.ref2.loadMovie(_global.img2);
 
 
_root.onEnterFrame = function() {
var total = this.getBytesTotal() ; // taille de l'animation en byte
var lu = this.getBytesLoaded() ; // l'état courant de chargement d'animation en byte
var rapport = (lu)/(total);
if (rapport >= 1) {
	_root.ref1._x = 450;
	_root.ref2._x = 630;
	_root.ref1._y = 360;
	_root.ref2._y = 360;
	_root.ref1._width = 150;
	_root.ref2._width = 150;
	_root.ref1._height = 106;
	_root.ref2._height = 106;
 
}
}
Au secours quelqu'un?
lemilig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 12h31   #2
Membre du Club
 
Inscription : mai 2007
Messages : 65
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2007
Messages : 65
Points : 66
Points : 66
Bonjour,

Utilises tu des classes AS2 ?

Goofyt,
goofyt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 12h34   #3
Nouveau Membre du Club
 
Avatar de Tigrounette
 
Inscription : décembre 2005
Messages : 132
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 132
Points : 39
Points : 39
Code php :
1
2
3
4
5
6
7
8
9
10
11
_quality = "BEST";
 
//function random
lv=new LoadVars();
lv.onLoad = function() {
	var img1 = "../img_ref/"+lv.id1+".jpg";
	var img2 = "../img_ref/"+lv.id2+".jpg";
        _root.ref1.loadMovie(img1);
        _root.ref2.loadMovie(img2);
};
lv.load("http://www.asdepique.com/img_rand.php");

Et comme ça, tu as essayé ?

En tout cas, dans ton code ça ne vas pas car tu tente d'afficher tes images alors qu'elle ne sont pas encore chargées.

Si ca marche pas regarde bien si lv.id1 et lv.id2 renvoient de bonnes valeurs avec un trace() à la fin de ton onLoad()
Tigrounette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 14h12   #4
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 64
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 64
Points : 10
Points : 10
Supêr, ça marche cette fois!!!! je ne comprends pas vraiment ce qui n'allait pas, j'étais persuadé d'avoir essayé exactement ça mais bon...

Celà dit, du coup, j'ai un nouveau problème pour définir la taille de mes images. Les dimensions, c'est n'importe-quoi... Rien à voir, même,; avec la taille originale des visuels. Et quand j'essaye de redéfinir _width ou __height, plus rien ne s'affiche... Alors que ça marchait très bien tout à l'heure dans la fonction on EnterFrame!!! Késako?
lemilig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 14h14   #5
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 64
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 64
Points : 10
Points : 10
Et pour répondre à la question précédente, c'est à peine si je sais de quoi tu parles,avec des "classes AS2". Tout ce que je sais c'est que je tape des bouts de trucs dans la fenêtre d'éditeur de flash prévue à cet effet. Ce qu'on appelle apprendre sur le tas, donc.
lemilig est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 15h20   #6
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 64
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 64
Points : 10
Points : 10
OK maintenant c'est encore mieux: mes images s'affichent, mais pas avec la bonne orientation!!! Elles subissent une rotation de 90°... Et pour avoir la taille voulue, je dois donner à _width la valeur prévue pour _height, sinon c'est plus grand que prévu... Je ne comprends pas tout, là. Bref, revoil à le code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
_quality = "BEST";
 
//function random
lv=new LoadVars();
lv.onLoad = function() {
	var img1 = "../img_ref/"+lv.id1+".jpg";
	trace(img1);
	var img2 = "../img_ref/"+lv.id2+".jpg";
	trace(img2);
    _root.ref1.loadMovie(img1);
	_root.ref2.loadMovie(img2);
};
 
_root.onEnterFrame = function() {
	_root.ref1._width = 106;//Normalement 150 mais bon...
	_root.ref2._width = 106;//Normalement 150 mais bon...
}
 
lv.load("http://www.asdepique.com/img_rand.php");
lemilig 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 14h43.


 
 
 
 
Partenaires

Hébergement Web