Sicuro che non funziona ?
Secondo me il fatto è che il figlio è vuoto.
Prova a disegnare un rettangolo col figlio.
This is a discussion on Aggiungere dinamicamente un MovieClip figlio ad un altro MovieClip within the Actionscript 3.0 avanzato forums, part of the Flash Italiano category; Come mai quando provo ad aggiungere un MovieClip figlio dinamicamente mi viene aggiunto solo all'ultimo Movieclip? Ho questo codice: Code: ...
Come mai quando provo ad aggiungere un MovieClip figlio dinamicamente mi viene aggiunto solo all'ultimo Movieclip?
Ho questo codice:
figlio mi viene aggiunto solo all'ultimo padre creato, come mai?Code:var n:int = 10; for (var j:int = 0; j < n; j++) { var padre:MovieClip = new MovieClip(); var figlio:MovieClip = new MovieClip(); padre.x = 100; padre.y = 100; addChild(padre); padre.addChild(figlio); }
Se provo invece a fare la stessa cosa con un TextField invece funziona tutto perfettamente, ad esempio...
così avrò più MovieClip con TextField annnidati diversi, come mai non Funziona con i MovieClip?Code:var n:int = 10; for (var j:int = 0; j < n; j++) { var padre:MovieClip = new MovieClip(); var figlio:TextField = new TextField(); padre.x = 100; padre.y = 100; figlio.text = Math.random(); addChild(padre); padre.addChild(figlio); }
![]()
Sicuro che non funziona ?
Secondo me il fatto è che il figlio è vuoto.
Prova a disegnare un rettangolo col figlio.
quello sopra era un esempio per far capire il problema, in effetti vado ad aggiungere un MovieClip figlio con un Loader caricato all'interno in un MovieClip padre che già contiene più TextField.
Succede che dinamicamente creo i MovieClip e i TextField figlio i TextField vengono creati e caricati perfettamente mentre i MovieClip no, viene aggiunto solo uno all'ultimo padre creato anch'egli dinamicamente...
hmmm....
strano...
quando carichi i figli hai detto che li carichi con un Loader, ho capito bene ?
Se è così, l' addChild del figlio dentro al padre lo fai sull' evento Event.COMPLETE ?
aspè...
i MovieClip figlio hanno caricato all'interno un Loader e poi a loro volta vengono caricati in un MovieClip padre, ad esempio padre->figlio->loader...
Procedo così, mi creo l'array dei Loader sull' evento Event.COMPLETE poi scarico questo array nell'array figlio e questultimo nel padre...
ma anche se il MovieClip figlio fosse uno e uguale per tutti i MovieClip padre mi accade sempre la stessa cosa, mi viene aggiunto solo all'ultimo padre creato...
![]()
Quindi, a rigor di logica dovresti dire padre.addChild(figlio); solo quando il figlio a sua volta ha finito di caricare quello che sta caricando.
quindi dovrei aggiungere un'altro eventListener sul caricamento del loader nel figlio, non basta avere già i Loader...
dovrei fare una cosa del genere:
giusto?!Code:function createFiglio():void { var figlio:MovieClip = new MovieClip(); figlio.addEventListener(Event.COMPLETE, addToPadre); figlio.addChild(imgLoader); } functio addToPadre(e:Event):void { for (var j:int = 0; j < n; j++) { var padre:MovieClip = new MovieClip(); padre.x = 100; padre.y = 100; addChild(padre); padre.addChild(figlio); }
...altra cosa, come faccio a passare il MovieClip figlio alla funzione addToPadre ?
Con i codici così a pezzi faccio davvero fatica.
In sostanza:
Crei il padre e fai addChild(padre);
Crei il figlio
Crei un Loader
A fine caricamento dici: figlio addChild(Loader);
E poi padre.addChild(figlio);
la procedura è la stessa...solo che addChild(padre); lo facevo alla fine, anche se non cambia il problema rimane...
Flep fammi capire quanti Event.COMPLETE devo usare, uno che mi gestisce il caricamento del Loader e l'altro del Loader nell'MovieClip?
Crei il padre e fai addChild(padre);
Crei il figlio
Crei un Loader (Event.COMPLETE)
A fine caricamento dici: figlio addChild(Loader); (Event.COMPLETE)
E poi padre.addChild(figlio);
![]()
Usi solo l' evento che intercetta il COMPLETE del Loader.
Al COMPLETE del Loader fai figlio.addChild(Loader);
Bookmarks