Bonjour, Newbie en AS3 je cherche un bout de code illustrant clairement la commande parent.addChild(...).
Si au niveau du concept ça me parait clair en revanche concrètement j'ai du mal...
Z'auriez ça en magasin ?
Merci.![]()
Bonjour, Newbie en AS3 je cherche un bout de code illustrant clairement la commande parent.addChild(...).
Si au niveau du concept ça me parait clair en revanche concrètement j'ai du mal...
Z'auriez ça en magasin ?
Merci.![]()
Tu ouvres un nouveau document FlashCS3 et tu mets comme classe de document la classe Main.
Main.as :
Cette classe crée un nouvel élement "sprite1" de type "MaClasse" et l'ajoute à la scène.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package { import flash.display.MovieClip; import MaClasse; public class Main extends MovieClip { public var sprite1 : MaClasse; public function Main() { sprite1 = new MaClasse(); addChild(sprite1); } } }
Regardes maintenant la classe "MaClasse.as" :
Elle crée un nouvel élement "sprite2" de type Sprite puis fait un "parent.addChild(sprite2);". Cela signifie que "sprite2" sera ajouté dans son "parent" soit ici la classe Main.as. (= Ajoute "sprite2", dans le clip qui contient une instance de MaClasse)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package { import flash.display.Sprite; public class MaClasse extends Sprite { public var sprite2 : Sprite; public function MaClasse() { sprite2 = new Sprite(); parent.addChild(sprite2); } } }
Je suis assez clair ??
Bon courage !
Merci Matieu de cette réponse rapide.
Une fois encore sur le principe les choses sont claires.
Ceci étant sur le code que tu me proposes l'erreur bien connue #1009 persiste sur MaClasse...
TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
Je suis perplexe...et pas très fier...
![]()
Tiens je t'ai mis un exemple (attention c'est un fichier CS4, si tu peux pas le lire, demande moi, je te le convertirais)
Alors l'erreur viens surement du fais que parent n'existe pas ^^
Si un objet d'affichage n'a jamais était ajouter , il a pas de parent (c'est un orphelin ). Une fois que tu l'aura ajouter a un autre objet il aura un parent , un objet d'affichage ne peut avoir qu'un parent.
Le seul objet qui a pas de parent et qui est toujours là c'est le stage.
Exemple simple et complet ^^:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 var shape:Shape = new Shape(); trace( shape.parent ); //null ( il est pas attribué ) stage.addChild( shape ); trace( shape.parent ); //[object Stage] trace( stage.numChildren ); //2 var sprite:Sprite = new Sprite(); sprite.addChild( shape ); trace( sprite.parent ); //null ( il est pas attribué ) trace( shape.parent ); //[object Sprite] ( il est attribué et en l'occurence object === sprite ) trace( stage.numChildren ) //1 stage.addChild( sprite ); trace( stage.getChildAt(1)===sprite ); //return true;
parent.addchild sa sert a ajouter un enfant dans le meme container que le parent ..
exemple :
Bref sa sert pas a grand chose à part dans certains cas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 var shape1:Shape = new Shape(); var shape2:Shape = new Shape(); stage.addChild(shape1); //Ajout de shape2 dans le meme container que shape1 shape1.parent.addChild(shape2); //Pareil que stage.addChild(shape2) car shape1.parent === stage trace( stage.numChildren ); //3
Si tu est dans une class d'un objet héritié de displayObject la synthaxe deviens :
parent.addChild( ... );
parent etant le parent de ton objet ( class ) en cours.
Si tu as parent == null alors tu tente null.addChild( ... ); ce qui est evidemment une erreur critique.
J'espère que sa t'a éclairé et que tu te prend pas trop la tete ^^
Salut !![]()
Partager