cs_hamdouss
Messages postés23Date d'inscriptionjeudi 6 novembre 2003StatutMembreDernière intervention12 février 2005
-
9 févr. 2005 à 18:07
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 2013
-
11 févr. 2005 à 18:04
Salut à tous,
Je suis en train de travailler sur un problème de recherche opérationnelle. Tout est presque fini et je partagerai la source bientôt.
L'algorithme que j'utilise nécessite un certain nombre d'itéraitions qui augmente si la taille du problème est importante. On sait que le Flash Player affiche un message d'erreur (aprés 15 secondes je crois) si on ne sort pas de la boucle pour se protégér d'une éventuelle boucle infinie. "un script de cette animation ralentit l'éxecution de Flash Player....Souhaitez-vouz abandonner l'exécution du script ?".
Je veux savoir s'il y a un truc ou une ligne que je peux ajouter pour empêcher l'affichage de ce message, autrement dit pour que le Flash Player 's'en foute' des scripts lents.
Merci d'avance
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 9 févr. 2005 à 18:17
alors pour précision, et après test, Flash considère une boucle comme infinie après 25000 instructions exécutées sans changement de Frame. De plus, ce message d'erreur fonctionne sous Flash, mais pas sous le player ... à toi de tester !
cs_hamdouss
Messages postés23Date d'inscriptionjeudi 6 novembre 2003StatutMembreDernière intervention12 février 2005 10 févr. 2005 à 18:27
Merci pour vos réponses,
Lorsque j'exécute mon .swf, le message s'affiche encore !!!
Ce que je veux c'est qu'il ne s'affiche plus, et qu'il attende la fin de la boucle.
shubenka
Messages postés759Date d'inscriptionmercredi 11 décembre 2002StatutMembreDernière intervention12 novembre 2008 10 févr. 2005 à 18:37
non il n'y a pas moyen decoupe ton algo
avec un set interval par exemple
ou un onEnterFrame
exemple
i=0;
nbrItération=1000; //par exemple
function onEnterFrame(){
for(var j=i;i<nbrItération;j++){
//ce que tu doit faire
.....
//
}
i+=nbrItération;
}
voila avec un truc dans ce style tu devrai t'en sortir
shubenka
Messages postés759Date d'inscriptionmercredi 11 décembre 2002StatutMembreDernière intervention12 novembre 2008 10 févr. 2005 à 18:55
evidement il faut faire m'étre une condition pour que i n'augmente pas
indéfiniment et a la rigeur pour faire propre de détruire le
onEnterFrame puis d'autre truc auquel je ne pense pas forcement
cs_hamdouss
Messages postés23Date d'inscriptionjeudi 6 novembre 2003StatutMembreDernière intervention12 février 2005 11 févr. 2005 à 08:21
j'ai pas envie de couper mon algo, loin de là. Je veux que l'utilisateur ne soit pas obligé de cliquer sur 'non' (il ne souhaite pas interrompre le script) à chaque fois que ça apparaisse.
cs_hamdouss
Messages postés23Date d'inscriptionjeudi 6 novembre 2003StatutMembreDernière intervention12 février 2005 11 févr. 2005 à 08:22
je crois que je vais être obligé de découper mon script sur 2 frames (avec la deuxième qui renvoie sur la première) en mettant une condition d'arrêt sur la deuxième.
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 11 févr. 2005 à 11:25
C'est exactement le même effet et ça t'obliges de toutes façons à couper ton code en 2 ...
Shubenka t'as proposé une solution simple et surtout propre .. après, à toi de t'en servir .. ou pas !
cs_hamdouss
Messages postés23Date d'inscriptionjeudi 6 novembre 2003StatutMembreDernière intervention12 février 2005 11 févr. 2005 à 15:54
J'avoue ne pas trop comprendre la solution de Shubenka. Pourquoi i doit être incrémenté de nbrIteration(et à l'extérieur de la boucle for en plus ). Je suppose que le i doit être incrémenté à l'intérieur de la boucle pour que celle-ci s'exécute nbrItération fois.Et si mon nombre d'itération dépasse le nombre max toléré par le player, celui-ci m'affiche encore le message.
En tout cas j'ai déjà déposé la source et j'ai découpé le code sur 2 images. L'inconvénient c'est que la vitesse de calcul diminue vu qu'entre la dernière instruction de l'image 1 et la première de l'image 2, il y a la cadence de l'animation qui est bornée par 120 image/sec.
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 11 févr. 2005 à 18:04
pour la cadence d'animation, tu aurais du lire un des dernier messages du Form, tu y aurais lu que peu de machines sont capable de tenir une cadence supèrieure à 30 img/sec ... et donc 120 c'est de l'utopie pure ...
Mais je pense trés sèrieusement que tu devrais voir pour un autre langage si tu veux éviter de faire une véritable usine à gaz .. Flash est un langage de programmation plutôt "Basique" car il est interprété et encapsulé dans un Active-X .. sans parler du fait qu'il ne se base essentiellement sur la puissance du CPU... Je ne sais pas ce que tu veux faire, mais Flash n'est apparement pas fait pour ça !