Categoria: Flash AS3
AS3: Attachmovieclip (AS2) non funziona. Il sostitutivo per aggiungere sprite dalla libreria.
|
|
Tweet |
|
|
Nel passaggio dal linguaggio più semplice ed intuitivo AS2 al successore AS3 alcune cose non vi torneranno. Una delle più frustranti è il metodo con cui aggiungere un movieClip dalla libreria del vostro file Flash allo stage.
Vediamo le sostanziali differenze tra i due linguaggi sul metodo di aggiunta del movieclip al filmato:
attachMovieClip in AS2
this.attachMovie(oggettoInLibreria, identificativo, livello_dello_stage) // attacco il movieclip "oggettoInLibreria" alla zona this, dandogli un "identificativo" per richiamarlo in seguito e gestirlo, e un "livello_dello_stage" per dargli la profondità)
identificativo._x = 100
identificativo._y = 50
addChild in AS3
movieClip = new movieClipInLibreria(); // creo l'oggetto su stage movieClip clonando l'oggetto della libreria movieClipInLibreria
movieClip .x = 100; // assegno la posizione x ed y sullo schermo al movieClip così creato
movieClip .y = 50;
stage.addChild (movieClip); // finalizzo l'azione con l'aggiunta allo stage del movieClip
in caso di necessità di aggiunta di un gruppo di movieClip in modo dinamico, e di necessità di gestirli successivamente da codice, eccovi come fare:
function generaOggetti () {
for (var i:Number = 0; i < 5; i++) {
this["oggetto" + i] = new oggettoInLibreria();
this["oggetto" + i].x = i * 100;
this["oggetto" + i].y = i * 50;
stage.addChild (this["oggetto" + i]);
}
}
generaOggetti ();
|
|
Tweet |
|
|
|
|
AS3: come chiamare una funzione definita sulla root da un movieclip aggiunto allo stage con Attachmovie o Addchild
|
|
Tweet |
|
|
Questo problema è uno dei problemi classici che si incontrano passando da AS2 ad AS3 nella programmazione flash. La differenza principale è che mentre prima si chiamava una funzione nella timeline principale con l'indicatore _root. ora si deve accedere alla funzione definita sullo stage con la seguente indicazione:
MovieClip(stage.getChildAt(0)).funzione()
dove MovieClip(stage.getChildAt(0)) sostituisce il _root (semplice no?) e .funzione() sarà la funzione che volete chiamare.
Questo metodo funziona da dentro un movieclip aggiunto allo stage dinamicamente dalla libreria dinamicamente con il metodo addchild (che in AS2 era attachmovieclip).
|
|
Tweet |
|
|
|
|
