Le cache de Flash

Aramiil Messages postés 48 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 21 avril 2008 - 21 avril 2008 à 17:40
kix484 Messages postés 79 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 24 juin 2010 - 21 avril 2008 à 18:05
Bonjour,

J'aimerais savoir si il est possible d'empecher Flash d'utiliser le cache pour l'actionscript que je génère.

Je m'explique : Je suis en train de créer un petit site pour m'entrainer en flash, en utilisant la classe LoadVars (et en AS2.0).

J'ai quatre calques sur mon flash, sur le 1 se trouve un bouton, et à l'image 2 une séquence qui se déroule normalement si le bouton est appuyé et que le mot de passe et l'identifiant entrés sont bons.

J'ai donc ce code sur l'un des calques :

_global.Pseudonyme = '';
_global.uid = 0;
_global.sid = 0;
_global.serveurAddr = 'http://127.0.0.1/flash/';
_global.btnValiderLoginDoing = false;

// La fonction pour le bouton
function doPresserBouton() {

// On vérifie que ce ne soit pas déjà en cours d'envoi
if(_global.btnValiderLoginDoing == false)
{

// On change le texte
_global.btnValiderLoginDoing = true;
_level0.txtInfosLogin.text = "Terminal > Identification en cours...";

// On créé le loadvar
var mv:LoadVars = new LoadVars();

// On défini sa fonction d'action
mv.onLoad = function (succes:Boolean) {
_global.btnValiderLoginDoing = false
if(succes)
{
if(mv.results.resultat == 'Ok')
{
_global.Pseudonyme = mv.results.perso;
_global.uid = mv.results.uid;
_global.sid = mv.results.sid;
//_root.gotoAndPlay(2);
} else {
_level0.txtInfosLogin.text = 'Terminal > Identification refusée. Veuillez vérifier votre mot de passe.';
}
} else {
_level0.txtInfosLogin.text = 'Terminal > Fonctions temporairement indisponibles. Veuillez nous excuser de la gêne occasionnée.';
}
}

// On regarde ce que ça donne
mv.pseudo = _level0.txtPseudoLogin.text;
mv.pass = _level0.txtPassLogin.text;
mv.results.resultat = 'Nok';
dateCourante=new Date();
mv.date=dateCourante.getTime();
mv.sendAndLoad(_global.serveurAddr + 'login.php?cachebuster=' + dateCourante.getTime(), mv, 'POST');
}
}

_level1.btnValiderLogin.addEventListener('onClick', doPresserBouton);

// On arrete le script, il reprendra plus tard
stop();

Vous noterez le commentaire sur le gotoAndPlay(2). Il est tout à fait volontaire. En fait, il est lié à un état de fait assez simple : si je met une trace() n'importe où dans ma fonction, ou même si je commente totalement ma fonction, y compris le sendAndLoad, j'obtiendrais toujours exactement le même résultat (et aucune trace()) : le fichier passera à l'image 2 lorsque je cliquerais sur le bouton et liras la scéquence, comme si il n'y avait pas de commentaire. En retirant totalement les lignes (couper/coller), le résultat est le même. Je n'ai pas testé en supprimant la fonction.

Y a-t-il un moyen d'éviter que Flash n'utilise toujours le même fichier et ne le mette en cache ? Parce que c'est pas pratique pour tester :-/

Merci,

Aramiil

3 réponses

Aramiil Messages postés 48 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 21 avril 2008
21 avril 2008 à 17:41
0
Aramiil Messages postés 48 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 21 avril 2008
21 avril 2008 à 17:47
Bon, repost en priant pour que cette fois ça marche... Vraiment désolé pour le multi-post.

Bonjour,

J'aimerais savoir si il est possible d'empecher Flash d'utiliser le cache pour l'actionscript que je génère. Je m'explique : Je suis en train de créer un petit site pour m'entrainer en flash, en utilisant la classe LoadVars (et en AS2.0).

J'ai quatre calques sur mon flash, sur le 1 se trouve un bouton, et à l'image 2 une séquence qui se déroule normalement si le bouton est appuyé et que le mot de passe et l'identifiant entrés sont bons. J'ai donc ce code sur l'un des calques :

_global.Pseudonyme = '';
_global.uid 0; _global.sid 0;
_global.serveurAddr = 'http://127.0.0.1/flash/';
_global.btnValiderLoginDoing = false;

// La fonction pour le bouton function
doPresserBouton() {

// On vérifie que ce ne soit pas déjà en cours d'envoi
if(_global.btnValiderLoginDoing == false) {

// On change le texte
_global.btnValiderLoginDoing = true;
_level0.txtInfosLogin.text = "Terminal > Identification en cours...";

// On créé le loadvar
var mv:LoadVars = new LoadVars();

// On défini sa fonction d'action
mv.onLoad = function (succes:Boolean) {
_global.btnValiderLoginDoing = false
if(succes) {
if(mv.results.resultat == 'Ok') {
_global.Pseudonyme = mv.results.perso;
_global.uid = mv.results.uid;
_global.sid = mv.results.sid;
//_root.gotoAndPlay(2);
} else {
_level0.txtInfosLogin.text = 'Terminal > Identification refusée. Veuillez vérifier votre mot de passe.';
}
} else {
_level0.txtInfosLogin.text = 'Terminal > Fonctions temporairement indisponibles. Veuillez nous excuser de la gêne occasionnée.';
}
}

// On regarde ce que ça donne
mv.pseudo = _level0.txtPseudoLogin.text;
mv.pass = _level0.txtPassLogin.text;
mv.results.resultat = 'Nok';
dateCourante=new Date();
mv.date=dateCourante.getTime();
mv.sendAndLoad(_global.serveurAddr + 'login.php?cachebuster=' + dateCourante.getTime(), mv, 'POST');
}
}

_level1.btnValiderLogin.addEventListener('onClick', doPresserBouton);
// On arrete le script, il reprendra plus tard
stop();

Vous noterez le commentaire sur le gotoAndPlay(2). Il est tout à fait volontaire.
En fait, il est lié à un état de fait assez simple : si je met une trace() n'importe où dans ma fonction, ou même si je commente totalement ma fonction, y compris le sendAndLoad, j'obtiendrais toujours exactement le même résultat (et aucune trace()) : le fichier passera à l'image 2 lorsque je cliquerais sur le bouton et liras la scéquence, comme si il n'y avait pas de commentaire. En retirant totalement les lignes (couper/coller), le résultat est le même. Je n'ai pas testé en supprimant la fonction.

Y a-t-il un moyen d'éviter que Flash n'utilise toujours le même fichier et ne le mette en cache ? Parce que c'est pas pratique pour tester :-/

Merci, Aramiil
0
kix484 Messages postés 79 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 24 juin 2010
21 avril 2008 à 18:05
Intéressant...

Pas à  ma connaissancee, je crois que tu es obligé de vider le cahe à chaque fois.

j ai un collegue qui a reussi a feinter je crois.

Il me semble qu il appelait le flash par une fonction php.  Il y avait 2 fois le mm swf  et par alternance une fois il charge le 1er et une deuxieme fois il chope le 2 eme et le cycle d alternance se repete..

Je ne pense pas que c tres utile ou si ca marche  mais bon...

Enfin vider le cache de ton navigateur ca prend pas 3h mais j avoue qd les test s enchainent c un peu penible

bon courage
0
Rejoignez-nous