Categoria: Flash AS3

AS3: Attachmovieclip (AS2) non funziona. Il sostitutivo per aggiungere sprite dalla libreria.

  

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 ();


   

  
  


Informazione libera online.
Resta aggiornato cliccando su Mi Piace

AS3: come chiamare una funzione definita sulla root da un movieclip aggiunto allo stage con Attachmovie o Addchild

  

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).


   

  
  


Informazione libera online.
Resta aggiornato cliccando su Mi Piace

.