Error #1502: (strict exécuté en 15 secondes) sur un while
Bonjour,
Je débute dans la création de classe, et je suis confronté à un probléme.
J'ai une classe main, qui créé une instance de la classe Introduction... Pour l'insntant, cette classe introduction place sur la scéne un clip quelconque, mais on pourra imaginer une animation d'une durée connu...
La classe introduction à une méthode qui dis si l'animation est finie.
Ce que je veux faire, c'est une boucle while dans ma class Main qui tourne tant que l'animation de Introduction n'est pas finie, et qui removeChild lorsqu'elle est finie...
Voici mon code:
class Main.as
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| package monpack{
import flash.display.Sprite;
import flash.net.*;
public class Main extends Sprite{
//instance de ma classe Introduction
public var intro:Introduction = new Introduction();
//j'ajoute et j'attend la fin de l'animation
public function Main(){
addChild(intro);
waitEndIntro();
}
private function waitEndIntro(){
//c'est ici que ça plante!
while(intro.getTruth()){
trace(intro.getTruth());
}
removeChild(intro);
}
}
} |
class Introduction.as
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
package monpack{
import flash.net.*;
import flash.display.Sprite;
import flash.events.*;
import flash.utils.Timer;
public class Introduction extends Sprite{
//ça c'est le clip de mon animation
public var monAnim:Animation57i = new Animation57i();
public var truth:Boolean = true;
private var myTimer:Timer = new Timer(1000,1);
public function Introduction(){
trace("hello");
addChild(monAnim);
myTimer.addEventListener(TimerEvent.TIMER, changeTruth);
myTimer.start();
}
public function getTruth()
{
return truth;
}
function changeTruth (evt:TimerEvent) {
truth = false;
}
}
} |
et le beau message d'erreur:
Citation:
Error: Error #1502: La durée d'exécution d'un script excède le délai par défaut (15 secondes).
at monpack::Introduction/getTruth()
at monpack::Main/waitEndIntro()
at monpack::Main()
Je me dis que la boucle whilte tourne peut-être trop, et que du coup le script mouline dur... Existe-t'il comme en Java un moyen de stopper un processus (ou pseudo-thread) dans un style de try{this.sleep}catch{}... comme AS3 à rajouter ce fameux try catch, j'aurais espéré que ça puisse servir à ça, mais wait et sleep ne retourne rien sur l'aide flash...
Quelqu'un a t'il un élément de réponse? une idée? Perso, je patoge!
Merci de votre aide!