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. ;)
Version imprimable
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:
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:
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 ?? :lol:
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...
:traine:
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:
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 :aie:Code:
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 ! :)
Voila mon fichier au format CS3...
Tu auras remarqué que c'est trop tard... :roll:
Merci de tes éclaircissements.
Merci beaucoup matieu, voila qui va me permettre de clôturer cet échange. Mais ce sera pour prendre un RV...
En effet, si dans le code fourni je vois bien maintenant la réalisation concrète de parent. addChild(...)
(si je me contente d'un addChild mon clip aterri dans le clip parent et en est dépendant (par une modification des propriétés .x et .y c'est visible), d'autres questions apparaissent.
4 éléments s'appellent MaClasse:
Le clip, sa liaison, la Classe proprement dite et le document AS et il semble qu'un rename de la liaison et des éléments instanciés entrainent des soucis surprenants mais ce sera pour un prochain post je retourne au fourneau.
Encore merci.:D
Addendum je retire mon dernier propos sur le rename ça fonctionne si je code convenablement.....
En revanche il ne semble pas nécessaire de placer la class en Super.
Décidément c'est passionnant l'AS3, mieux que le cobol....