Quelqu'un pourrait-il m'aider à appeler Main constructor? En général, mon idée est de réinitialiser la scène.Comment utiliser Main d'une autre classe en as3
Classe principale:
public class Main extends Sprite
{
private var sprite:Sprite = new Sprite();
public function Main()
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
sprite.graphics.lineStyle(1, 0x990000, 1);
sprite.graphics.drawRoundRect(5, 5, 500, 150, 10, 10);
addChild(sprite);
}
}
En utilisant un bouton j'ai enlevé que sprite, et ma scène va à blanc, mais j'ai une autre classe:
public class AnotherClass
{
public function Action()
{
ResetMain();
}
private function ResetMain()
{
//what to write here for reseting Main(re-calling Main()) ?
}
}
je fais comme vous sujest, mais ACCURE d'erreur: Erreur # 1009: ne peut pas accéder à une propriété ou à une méthode d'une référence d'objet null. Dans AnotherClass.as j'ai créé une variable, "private var main: Main;" et appelez reset() - "main.reset();" en action func. et cette fenêtre d'erreur. – L6go1as
Je pense que cela se produit en raison de main == null, mais comment appeler reset() w \ o je ne sais pas ... Dans AnotherClass.comme je transfère "ceci" (de Main.as) comme "DisplayObjectContainer" pour ajouter des éléments sur la scène d'AnotherClass.as – L6go1as
Merci pour votre réponse. Tous fonctionnent bien, mais pourriez-vous m'aider à comprendre comment cela fonctionne ... Par exemple. J'ai une AnotherClass, là "public var main_class: Main;" et je l'appelle de Main comme ça: "var quelque chose: AnotherClass = new AnotherClass(), something.main_class = this;". Donc ça marche bien, mais seulement une fois. Pourquoi ? Parce que j'utilise la fonction 'ClearAll', qui supprime tous les enfants/événements et variables de la scène. Si je m'arrêtais à 'annuler' toutes les varialbes dans une classe - tout fonctionne bien, peu importe comment vous l'avez fait (votre variation ou la mienne). – L6go1as