Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

flash MX - erreur chargement

1 réponse
Avatar
boulouboulou webforumsuser
bonjour
une question qui peut vous paraitre simple, mais sur laquelle je me casse le nez
est il possible de detecter la non présence d'un fichier externe pour le chargement dans flash?
autrement dis
j'ai un anim qui doit en charger une autre, mais si cette autre anim n'existe pas,
mon premier fichier le cherche desesperement
dans le panneau de sortie j'ai 'error opening url'
mais dans mons anim je voudrais le signaler aussi, sans avoir a attendre, dés que le player se rend
compte de la non presence du fichier


merci d'avance
philippe

1 réponse

Avatar
Bertrand Saint-Guillain
"boulouboulou" wrote:

bonjour
une question qui peut vous paraitre simple, mais sur laquelle je me casse le nez
est il possible de detecter la non présence d'un fichier externe pour le chargement dans flash?



une mauvaise réponse serait de tester si getBytesTotal
renvoie -1
tu peux vérifier que ça a l'air de marcher
createEmptyMovieClip("a",1);
a.loadMovie("http://www.supersatori.com/nexistepas.swf");
onEnterFrame=function() {
trace(a.getBytesTotal());
};
mais il faut savoir que dans certains cas,
getBytesTotal renvoie -1 en début de chargement
donc ce n'est pas une méthode fiable.

Il reste une astuce simple pour vérifier la présence d'un swf.
Quand Flash charge un fichier texte par LoadVars.load
ou XML.load, il considère un octet à zero comme une fin
de fichier.
Dans le cas d'un swf, le fichier contient l'entete
FWS ou CWS suivi du numéro de version et d'un zero.
C'est un moyen économique de tester la présence d'un swf
sans le charger complètement, par exemple:
b=new XML();
b.onData = function (d){
var swfString = d.substr(0,3);
var ver = d.charCodeAt(3);
switch(swfString) {
case "FWS" : trace("swf non compressé");
trace("version : "+ver);
break;
case "CWS" : trace("swf compressé");
trace("version : "+ver);
break;
default : trace("pas un swf ou 404");
}
};
b.load("http://www.supersatori.com/index.swf");
// b.load("http://www.supersatori.com/nexistepas.swf");

--
Bertrand Saint-Guillain
http://www.supersatori.com/