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 07/06/2007, 18h04   #1
Membre du Club
 
Inscription : mai 2007
Messages : 127
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 127
Points : 43
Points : 43
Par défaut Système de préchargement particulier

Bonjour à tous.
Voila, je réalise actuellement un site web en flash, et sur chaque frames, j'ai une image d'arrière-plan différente.
J'ai pensé utiliser un MovieClipLoader pour ces images (il y en a 3), que je met à la toute premiere frame. Cette premiere frame est en fait une page qui indique le chargement du SWF. Dans mon écouteur.onLoadStart, je récupere la taille de chaques fichiers, et j'additionne tous les fichiers dans une même variable générale pour avoir la taille totale pour la durée du chargement (et ensuite je gere la progression dans l'evenement approprié)

Mon soucis, c'est que flash ne lance pas réellement les trois chargement à la suite (malgré que je met ces trois fichiers à la suite), donc la taille total varie, ca débute avec la taille du premier, puis la taille du deuxieme, puis le troisième, et ce durant le téléchargement du premier, ce qui veut dire que mon % fait quelque chose du genre 0, 10, 5, 2, 3, 4, 5, 6, ... vous comprenez ?

De plus, j'aimerai prendre en compte la taille du fichier swf lors du chargement, afin d'etre correct au niveau du pourcentage de chargement.

Le soucis, c'est que ces 3 images allant dans 3 frames différentes, j'utilise des emptyMovieClip et dans les différentes frames, je spécifie le _visible = bool pour afficher celle que je veux. N'y aurait-il pas une méthode plus simple pour dire "je met cette image sur la frame X, sur le calque "xxxxx" ?

Je suis ouvert à toute nouvelle proposition pour simplifier la démarche !

Merci beaucoup de votre aide !

Voici le code que j'utilise pour les images :

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
 
stop();
 
var Bg1Len:Number = 0;
var Bg2Len:Number = 0;
var Bg3Len:Number = 0;
var BgTotalLen:Number = 0;
 
var BGListen:Object = new Object();
var BgroundMCL:MovieClipLoader = new MovieClipLoader();
 
this.createEmptyMovieClip("Background1", -16532);
this.createEmptyMovieClip("Background2", -16531);
this.createEmptyMovieClip("Background3", -16530);
 
BgroundMCL.addListener(BGListen);
BgroundMCL.addListener(BGListen);
BgroundMCL.addListener(BGListen);
 
BgroundMCL.loadClip("./images/zip.png", "Background1");
BgroundMCL.loadClip("./images/accueil-image.png", "Background2");
BgroundMCL.loadClip("./images/pages-image.png", "Background3");
 
BGListen.onLoadComplete = function(target_mc:MovieClip) {
    if (target_mc == _level0.Background1) {
        target_mc._visible = true;
        gotoAndPlay(1);
    }
    else {
        target_mc._visible = false;
    }
 
};
 
BGListen.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
    var progression:Object = BgroundMCL.getProgress(target_mc);
 
    if (target_mc == _level0.Background1) Bg1Len = progression.bytesLoaded;
    else if (target_mc == _level0.Background2) Bg2Len = progression.bytesLoaded;
    else if (target_mc == _level0.Background3) Bg3Len = progression.bytesLoaded;
    var totalTmp = Bg1Len + Bg2Len + Bg3Len;
    if (totalTmp == BgTotalLen && totalTmp > 0) {
        trace ("load complete");
    }
}
 
BGListen.onLoadStart = function(target_mc:MovieClip) {
    var progression:Object = BgroundMCL.getProgress(target_mc);
    BgTotalLen += progression.bytesTotal;
    trace (" ===== > " + BgTotalLen);
}
Merci pour votre aide
codefalse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 07h35   #2
Inactif
 
Avatar de CR_Gio
 
Inscription : septembre 2005
Messages : 1 196
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 1 196
Points : 1 201
Points : 1 201
Bonjour a tous,

Ettant donné que tu charge l'animation d'un coup pour permetre la navigation. Pourquoi ne pas mettre en "dur" les image de fond ?
Utilise getBytesLoaded() pour savoir quand l'animation est charger, ou sinon laisse faire le systeme ( le stream intrinsec de fash )
CR_Gio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 10h34   #3
Membre du Club
 
Inscription : mai 2007
Messages : 127
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 127
Points : 43
Points : 43
tu entends quoi par "en dur" ?
codefalse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 16h28   #4
Inactif
 
Avatar de CR_Gio
 
Inscription : septembre 2005
Messages : 1 196
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 1 196
Points : 1 201
Points : 1 201
j'entend par "en dur", le fait de poser les image directement sur la scene
CR_Gio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 16h39   #5
Membre du Club
 
Inscription : mai 2007
Messages : 127
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 127
Points : 43
Points : 43
ok
le soucis c'est qu'elles sont assez lourde ... chuis un peu coincé, entre charger l'image ou tout mettre en effet ... au final ce serait pareil, sauf que sur la scene, j'aurai dejà la taille de tous le swf. Oué, interessant !!

Juste pour savoir, admettons que j'aie 5 frame, la premiere, c'est l'écran qui dit "chargement", et pour les 4 autres, j'ai une image dans chaques frames.
Flash va d'abord me charger la frame 1, puis 2 puis 3, etc ou il va tout charger n'importe comment ?
Ce que je veux dire par là, c'est que si j'attends que la frame 2 soit chargé, je pourrai y aller, sans attendre que les autres seront chargées, non ?
codefalse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 16h55   #6
Inactif
 
Avatar de CR_Gio
 
Inscription : septembre 2005
Messages : 1 196
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 1 196
Points : 1 201
Points : 1 201
Citation:
Flash va d'abord me charger la frame 1, puis 2 puis 3, etc [...]
Ce que je veux dire par là, c'est que si j'attends que la frame 2 soit chargé, je pourrai y aller, sans attendre que les autres seront chargées[...]
T'as tout compris
Le seul probleme c'est que si l'utilisateur veux allé de la frame 2 a la frame 4 il devra attendre le chargement de la frame 3.
CR_Gio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 17h56   #7
Membre du Club
 
Inscription : mai 2007
Messages : 127
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 127
Points : 43
Points : 43
Okay cool !
Bah en fait c'est un suivi linéaire je dirai.
La frame 1 c'est le loader
La frame deux, c'est l'intro
la frame trois l'accueil et le menu
la frame 4 les différentes pages
(la page intro, et accueil ont une image différente, toutes les autres pages ont la meme images (qui est différente des deux premieres))
Donc ca devrait aller
Jvais voir ca !

Merci de ton aide
codefalse 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 11h27.


 
 
 
 
Partenaires

Hébergement Web