Bonjour à tous,
Me voici depuis plusieurs semaines dans une situation embarrassante. Dans le cadre d'un projet pro, je doit créer un quiz offline en flash. Ce quiz personnalisable doit notamment pouvoir afficher des photos, vidéos et sons.
Dès lors, avec mes tristes et minces compétences en action script 2, j'ai essayé tant bien que mal d'obtenir un code fonctionnel qui affiche une vidéo, un son ou une image en fonction de ce que le client nous a livré.
Pour éclaircir un peu ce code, "programmé avec seulement 3 orteils", voici le principe que je souhaite mettre en oeuvre.
Au préalable, vous devez savoir...
Les règles du jeu sont simples : il s'agit d'un jeu d'équipes de type "trivial poursuit". Les questions et réponses rapportent à l'équipe qui joue des points.
Ces questions et réponses peuvent être accompagnées par une photo, une vidéo ou un son (mais jamais 2 médias en même temps).
J'ai donc créer dans le jeu un clip "medias" qui charge un swf comprenant le code ci-dessous. Ce code à plusieurs objectifs mais mes capacités de réfléxions logique en terme de programmation approche le NULL. L'idée est pourtant simple : je vérifie sur mon cdrom si le média de la question n°12 du thème "rouge" existe ou non. Si ce média existe, je l'affiche, sinon, je n'affiche rien.
Comme j'ai trois type de médias différents, j'ai donc 3 "parties" dans ce code permettant de charger soit une image, soit une vidéo, soit un son. J'ai récemment ajouter une condition if dans le but d'éviter de faire tourner ces 3 "parties" en même temps (mais ma manière de faire est peut être... innefficace, inutile et mal pensée).
Bref, ce code est "fonctionnel". Il m'affiche soit ma vidéo, soit mon image, soit un son. (pas encore certain pour le son mais la n'est pas ma future question).
Le problème vient du fait que ce code doit être terriblement mal fait pour provoquer aléatoirement la fatidique erreur : "Un script semble ralentir votre animation, voulez vous continuer à exécuter ce script ?"
Avant de venir vous voir, j'ai biensur tenté plusieurs choses, mais sans succès. (Ajout de plusieurs setInterval par exemple, ou d'autres fonctions trouvé par ci-par la pour vérifier l'existance des fichiers, ...) rien n'y fait. L'erreur persiste.
En outre, j'ai peut être quelques solutions de secours dans le cas ou ce code serait irrécupérable mais je dois avouer que le temps commence "sérieusement" à me manquer.
Vous êtes donc finalement mon ultime espoir. Existe t'il parmi vous une âme généreuse capable de décrypter mon code et me conseiller ?
Je vous remercie par avance. Voici mon code :
stop();
//CHARGEMENT VIDEO
Videos.attachMovie("FLVPlayback","lavideo",this.getNextHighestDepth());
Videos.lavideo.contentPath = "videosClient/Qrouge12.flv";
onEnterFrame = function () {
if (Videos.lavideo.state == 'connectionError') {
// trace('il n y a pas de vidéo');
//CHARGER UNE IMAGE
var ecouteur:Object = new Object();
ecouteur.onLoadError = function(image) {
// trace("Il n y a pas d'image");
image_mcl.removeListener(ecouteur);
// CHARGER UN SON
musique = new Sound();
musiqueACharger = "sonsClient/Qrouge12.mp3";
chargementMusique = new LoadVars();
chargementMusique.onLoad = function(fichierExiste) {
if (fichierExiste) {
musique.loadSound(musiqueACharger,true);
// trace("il y a du son");
} else {
// trace("il n y a pas de son");
}
};
chargementMusique.load(musiqueACharger);
};
ecouteur.onLoadComplete = function(image) {
// trace("Il y a une d'image");
image_mcl.removeListener(ecouteur);
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(ecouteur);
fichierACharger = "imagesClient/Qrouge12.png";
image_mcl.loadClip(fichierACharger,image);
delete onEnterFrame;
} else {
// trace('il y a une vidéo');
delete onEnterFrame;
}
};