actionscript 3 init()
J'ai souvent vu un init() dans le constructeur de classes AS3, parfois même le seul code dans le constructeur. Pourquoi serait-il utile pour ce faire, si vous pouvez simplement utiliser la fonction de constructeur lui-même pour initialiser une classe?
package
{
import flash.display.Sprite;
public class Example extends Sprite
{
public function Example()
{
init();
}
public function init ( ):void
{
//initialize here
}
}
}
OriginalL'auteur minimalpop | 2009-10-30
Vous devez vous connecter pour publier un commentaire.
En ActionScript 3, le code du constructeur est toujours interprétée non compilé. Je crois que de déplacer le code dans une fonction init() peut lui permettre d'être compilé et optimisé.
http://blog.pixelbreaker.com/flash/as30-jit-vs-interpreted/
Je n'étais pas au courant de cela, la curiosité de savoir, merci!
OriginalL'auteur John Lemberger
La raison pour laquelle je l'ai fait c'est pour que je puisse ré-initialiser une classe sans la création d'une nouvelle instance. La méthode init() fonctionne comme un bouton "reset" puis, si vous le code de droit, vous permettant de retourner à la classe de son état initial, alors que, par exemple, en permettant à toutes les variables qui ont été fixés pour rester ensemble.
Selon la façon dont vous code, bien sûr.
OriginalL'auteur Myk
Une autre raison peut être que vous avez besoin d'une référence de la scène ou du conteneur parent et il est trop paresseux pour mettre en place un
ADDED_TO_STAGE
auditeur. Ensuite, vous avez instancier la classe de première, l'ajouter au conteneur et ensuite appelerinit()
une fois qu'il est sur la displaylist.OriginalL'auteur grapefrukt
Programmeurs de nouveau à AS3 ont souvent des problèmes de référencement sur la scène (le bien connu " il n'y est pas la situation).
En fait ... :
... c'est facilement corrigé.
Ou parfois vous initialisez un XML chargeur dans le constructeur, et ensuite appeler la fonction d'initialisation lors du chargement d'achèvement.
OriginalL'auteur Sam Blaasvaer