Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

loadMovie o loadMovieNum?

Sistemi di caricamento di filmati esterni
Sistemi di caricamento di filmati esterni
Link copiato negli appunti

Flash 5 (come anche le due versioni precedenti), offre la possibilità di far interagire filmati diversi tramite il caricamento degli uni, sopra o all'interno degli altri. Esistono comandi diversi per le due opzioni, anche se raggruppabili come un'unica tipologia (come viene fatto nel pannello delle Azioni): i sistemi di caricamento generati però differiscono per le loro caratteristiche peculiari. Vediamo i due sistemi e il loro funzionamento.

LoadMovie

Con il comando loadMovie si carica un filmato esterno all'interno di un movieclip contenuto nel filmato principale.

Posiziono un movieclip sullo stage, al quale assegno un nome d'istanza, ad esempio "mc". Per associare l'azione ad un frame, o a un pulsante, vado al pannello Azioni, e clicco due volte su loadMovie. Verrà aggiunta l'azione loadMovieNum. Nel campo "URL" scrivo il nome del filmato da caricare, dal menu "Location" scelgo "target", e nel campo accanto indico il percorso di "mc".

Ottengo questo comando:

loadMovie("filmato.swf", _root.mc);

In questo modo il filmato viene caricato all'interno del movieclip, e ne assume le caratteristiche, come ad esempio la posizione, o il grado di trasparenza. Generalmente, per rendere il caricamento il più pregevole possibile dal punto di vista grafico, si usa caricare il filmato all'interno di un movieclip vuoto, in quanto il filmato cancellerebbe all'istante quello che era il precedente contenuto del movieclip stesso.

In questo caso, sorge un problema relativo alla posizione che assumerà il filmato: dal momento che l'angolo superiore sinistro del filmato secondario viene posizionato nel punto centrale del movieclip che lo accoglie, quando questo è vuoto, la posizione originale del movieclip corrisponderà al punto di coordinate (0,0) del filmato caricato.

Che cosa significa, in termini più semplici? Che se il movieclip vuoto è al centro del filmato principale, una volta caricato il filmato esterno, questo NON sarà centrato rispetto, ma spostato verso il basso e verso destra, in quanto sarà il suo angolo superiore sinistro ad essere al centro dello stage. Da questo problema, deriva la necessità di posizionare il movieclip nel punto tale da far assumere al filmato caricato la locazione voluta.

D'altronde è inutile caricare un filmato nel movieclip e poi spostarlo con actionscript. Un comando come questo:

loadMovie("filmato.swf", _root.mc);
setProperty ("_root.mc", _x, 300);
setProperty ("_root.mc", _y, 200);

non ha senso, al caricamento. Basta posizionare il movieclip vuoto, tramite il pannello Info, nel punto opportuno. Con semplicissimi calcoli si può, infatti, stabilire prima quale sarà la posizione da assegnargli.

LoadMovieNum

Con il comando loadMovieNum si carica un filmato esterno sul sistema di livelli creato dal filmato principale: non c'è bisogno del movieclip vuoto.

Con il doppio click su loadMovie nel pannello Azioni (quando si è in modalità Esperto i due comandi saranno separati), verrà aggiunta l'azione: nel campo "URL" scrivo il nome del filmato.

Non ho bisogno di cambiare l'impostazione di "Location", lascio "Level". Nel campo accanto scrivo il numero del livello sul quale caricare il filmato. L'azione avrà questo aspetto:

loadMovieNum("filmato.swf", 1);

Se carico sul livello 0, il nuovo filmato prenderà il posto di quello principale. Questo significa che perderò tutte le variabili impostate in quest'ultimo, che i suoni si fermeranno, e che eventuali livelli già caricati verranno svuotati.

Se carico su un livello superiore al principale, il nuovo filmato apparirà in trasparenza sopra il primo, come due layer all'interno della stessa timeline. Lo sfondo del filmato caricato non sarà presente, e si vedranno gli oggetti dei due filmati come se fossero su uno solo. Potrò quindi vedere ancora le animazioni del filmato principale e utilizzarne i pulsanti: le variabili saranno ancora attive, e così gli altri livelli già caricati. Caricando un filmato su un livello già occupato, il nuovo filmato prenderà il posto di quello precedente.

Il nuovo filmato viene caricato, come posizione, in alto a sinistra del filmato principale, cioè i punti origine dei due filmati verranno fatti coincidere. Per comodità, quindi, conviene creare il filmato secondario delle stesse dimensioni del principale: basandomi sul concetto dei fogli d'acetato, posizionerò gli oggetti sul filmato secondario nella posizione che assumerebbero se fossero sul primo.

Molto spesso sembra che sia più comodo caricare il filmato con il loadMovie, all'interno di un movieclip: questo errore deriva dal fatto che si ritiene più facile agire su un movieclip piuttosto che su un livello. Io credo invece che i vantaggi siano tutti dalla parte del loadMovieNum.

Così come si può ridimensionare un movieclip, ad esempio si può ridimensionare un livello:

_level1._width = 100;

allo stesso modo se ne può impostare l'alpha:

_level1._alpha= 20;

oppure la posizione:

_level1._x = 50;

o la rotazione:

_level1._rotation = 45;

o la scala:

_level1._xscale = 200;

Le variabili sono accessibili più facilmente, essendo i percorsi più brevi, e questo soprattutto per chi scrive il codice: _level0.mc.variabile con il movieclip, _level1.variabile sul livello.

Un filmato caricato su un livello, funzionerà correttamente anche provato da solo, mentre, quando progettato per essere caricato in un movieclip, laddove ci sia un uso di variabili in relazione alla posizione delle stesse rispetto alla timeline principale, dovrà essere adattato, con un cambio di percorsi.

Gli oggetti resistono al cambio di scena nel filmato principale, e così i suoni, cosa che non avverrebbe caricando il filmato in un movieclip.

Il preloader di un filmato esterno (come vedremo in un altro momento), è molto più semplice e modificabile, e si può creare in diversi modi: e i vantaggi si notano soprattutto nell'uso delle librerie condivise e dell'attachSound.

Si può duplicare un filmato per intero, caricandolo più volte su livelli diversi. E se ho proprio bisogno di alcune funzionalità come gli eventi associati ai movievlip, nulla mi impedisce di creare il movieclip voluto sul filmato secondario, e di caricarlo poi su un livello.

Certo ci sono alcuni punti da considerare: il punto di registrazione del filmato secondario non sarà il centro dello stage, ma l'angolo superiore sinistro. E se creo un movieclip vuoto, a cui associo un codice particolare, che voglio sia lo stesso qualunque sia il contenuto del movieclip, potrei trovare più semplice il loadMovie

Ma pur non potendo dettare una regola generale sull'uso dell'uno o dell'altro metodo, ma per la maggior parte degli utilizzi, e comunque per tutti quelli più immediati, il loadMovieNum è sicuramente preferibile.


Ti consigliamo anche