Bonjour
J'ai un autre souci assez ennuyeux avec mes pages swf converties depuis des pdf. Mon application est toujours le catalogue, son principe étant de :
a) créer une zone d'affichage avec le code suivant :
b) charger les pages (pas nécessairement celle qui doit être affichée, en effet certaines seront chargées en avance) avec le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 var zone = racine.createEmptyMovieClip("catalogue", 0); zone._x = x; zone._y = y; zone.beginFill(0xeeeeee); zone.lineStyle(1); zone.moveTo(0, 0); zone.lineTo(w - 1, 0); zone.lineTo(w - 1, h - 1); zone.lineTo(0, h - 1); zone.lineTo(0, 0); zone.endFill();
Si j'utilise du .jpg, hormis le temps de chargement lui-même (que je peux matérialiser en utilisant mcl.onLoadProgress), l'affichage est ensuite instantanné une fois que le clip existe (bien que l'affichage soit dégradé... quelqu'un sait pourquoi Flash dégrade volontairement la sortie d'un .jpg ? même en fixant _quality à "BEST" ?)
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 var cible = zone.createEmptyMovieClip("ecran" + numEcran, numEcran); var mcl = new MovieClipLoader(); var largeurZone = zone._width; var hauteurZone = zone._height; var obj = this; mcl.onLoadInit = function(cible) { // Point 3 cible._visible = false; cible._xscale = 100 * largeurZone / cible._width; cible._yscale = 100 * hauteurZone / cible._height; } // Point 1 mcl.loadClip(baseFichier + numEcran + ".swf", cible); // Point 2
Mais si j'utilise, comme ci-dessus, du .swf complexe (généré depuis un pdf très complexe), outre le temps de chargement il y a un "temps de rendu" de plus d'une seconde pour afficher la page, et même si le clip est déjà chargé, quand je passe d'une page à l'autre (je rend invisible la page actuelle et rend visible la page nouvelle), il y a ce temps d'attente pour le rendu.
J'ai donc pensé naïvement que la solution serait dans cacheAsBitmap afin que le rendu ne soit fait qu'une seule fois. Le problème c'est que ça ne change absolument rien.
Si je met cible.cacheAsBitmap = true; au Point 1 ou au Point 2, la propriété apparaît à "false" une fois le clip chargé. Si je la met au Point 3, la propriété apparaît bien à "true", mais dans aucun des trois cas, il n'y a d'amélioration de la vitesse de l'affichage, après un _visible = false suivi d'un _visible = true. Quelqu'un a une idée pourquoi ?
Merci d'avance.![]()
Partager