Bonjour à tous,

Je travaille sur une galerie ou des miniatures s'affichent avec Tween. Pas de soucis. Mais comme le chargement était un peu long j'ai voulu mettre un preloader. Soucis

Je galère trop à comprendre le fonctionnement des preloader, alors je l'ai fais un peu à ma sauce. L'idée est d'afficher un clip noir couvrant la scène avec un texte "chargement" dessus tant que les images ne sont pas loadées et de le virer à la fin...

Donc en gros au début je fais un loader.visible=true puis un setChildIndex(preload,1) pour qu'il passe sur les photos. Tout roule, mais après quand je lui dis preload.visible=false il ne veut plus disparaitre !!

Mon code tout bien commenté :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
 
import flash.filters.ColorMatrixFilter;
import flash.utils.describeType;
import com.tweenman.TweenMan;
 
var prev_img:uint=0;
var GrandeImage:Loader = new Loader();
 
setChildIndex(preload,1);
 
// Chargement du fichier XML contenant les chemins des photos
var chargementXML:URLLoader = new URLLoader();// objet de chargement
var fichier:URLRequest = new URLRequest("xml/abstractions.xml");// url du fichier chargé
chargementXML.addEventListener(Event.COMPLETE, chargementComplet);
 
chargementXML.addEventListener(IOErrorEvent.IO_ERROR, error);
 
chargementXML.load( fichier );
 
 
var posx:uint = 0; // position de la miniature à afficher
var posy:uint = 0;
var i:uint = 0; // Boucle de chargement des images
 
var Ar:Array = new Array();
Ar["Conteneur"] = new Sprite();
addChild(Ar["Conteneur"]);
 
 
function error (event:IOErrorEvent):void
{
	trace (String(event));
}
 
 
// chargement terminé du fichier xml
function chargementComplet(pEvt:Event):void
{
	// on récupère notre xml
	var ImagesPath:XML = new XML( pEvt.target.data );//la classe XML est une classe native de Flash, on la trouve dans le package Top Level.
	var photos:XMLList = ImagesPath.elements(); //le document XML est constitué d'une liste d'éléments XML, en l'occurence ici, une liste de photos
 
	var nb_photos=photos.length();
 
	for each(var chemin:XML in photos)//pour chaque noeud enfants dans la liste des photos
	{
		if (posy < 400)
		{
			try {
        		var url:String = chemin.mini
        		Ar[i] = new Loader()
        		Ar[i].load(new URLRequest(url));
				Ar[i].x=posx;
				Ar[i].y=posy;
				Ar[i].alpha = 0;
        		Ar["Conteneur"].addChild(Ar[i]);
    		} 
			catch (e:Error) {
        		trace(e);
    		}
			finally {
				posx = posx + 43;
				if (posx > 170)
				{
					posy = posy + 43;
					posx=0;
				}
 
				Ar[i].addEventListener(MouseEvent.CLICK, clic_image);
				Ar[i].addEventListener(MouseEvent.ROLL_OVER, survol_image);
			}
    	}
	if (i == nb_photos-1){PreLoadOK();} 
	i++;
	}
}
 
 
 
function clic_image(evt:MouseEvent) {
 
   evt.target.alpha = 0;
   TweenMan.addTween(evt.target, { time: 1, alpha: 1 });
	var index:int = -1;
   for (var i:int = 0; i < Ar.length; i++) {
      if (Ar[i] == evt.target) {
         index = i;
         break;
      }
   }
 
	trouve_image (index+1);
}
 
 
 
function survol_image(evt:MouseEvent) {
 
   	evt.target.alpha = 0;
	TweenMan.addTween(evt.target, { time: 1, alpha: 1 });
}
 
function PreLoadOK()
{
					for (var j:uint=0; j<i; j++)
					{
					TweenMan.addTween(Ar[j], { time: 1, alpha: 1 });
					if (j==21){preload.visible=false;}
					}
 
}
 
function trouve_image (img:uint)
{
	GrandeImage.unload();
 
	var GImg:URLRequest = new URLRequest("abstractions/grandes/abstractions" + img + ".jpg");
	GrandeImage.x=-584;
	GrandeImage.y=4;	
	GrandeImage.alpha = 0;
	GrandeImage.load(GImg);
	addChild(GrandeImage);
 
	TweenMan.addTween(GrandeImage, { time: 1, alpha: 1 });
}
 
// Image d'accueil :
var GImgAcc:URLRequest = new URLRequest("abstractions/grandes/abstractions1.jpg");
GrandeImage.x=-584;
GrandeImage.y=4;	
GrandeImage.load(GImgAcc);
GrandeImage.alpha=0;
addChild(GrandeImage);
TweenMan.addTween(GrandeImage, { time: 1, alpha: 1 });
 
stop();