Warp9.it
a- a+

L'oggetto Stage

A grande richiesta, ho deciso di scrivere un tutorial che sarà diviso in varie parti, date le molteplici facce dell'argomento. Oggetto della discussione sarà il famigerato oggetto Stage, introdotto dalla versione MX.

Premessa: ha senso utilizzare questo oggetto solo in filmati pubblicati in pagine html con width e height del filmato settati in percentuale, o comunque variabili.
nel caso di un filmato pubblicato a dimensione fissa infatti, tutti i vantaggi derivanti da questo oggetto vengono a cadere...ed ora spiegheremo perchè.

Stage.ScaleMode
E' la proprietà dell'oggetto stage che overrida le impostazioni di pubblicazione: funziona in tutto e per tutto come l'attributo scale nelle impostazioni di pubblicazione dell'html, ovvero può essere settato a "exactFit" , "showAll" , "noBorder" e "noScale" (valore di default "showAll"). Ma, come ho detto prima, overrida (ovvero sovrascrive) quanto impostato nella pubblicazione, e ha il vantaggio di poter essere utilizzato anche nei proiettori (dove l'html non c'è).

Per i fini del nostro tutorial, scriviamo sul primo frame della timeline di un fla bello nuovo di dimensioni 600*400

Codice:

Stage.scaleMode = "noScale"

Ci servirà in seguito...

Stage.align
Questa proprietà è forse la piu delicata...fate molta attenzione. Di default, l'allineamento dell'swf è centrato sia inorizzontale che in verticale. Supponendo che il nostro filmato di test contenga un rettangolo grande come il filmato (600*300).
Se pubblicassimo ora il filmato, senza specificare questa proprietà, (con impostazioni di dimensione al 100% nell'html e bordi della pagina settati a 0 nel body) vedremmo il nostro rettangolo SEMPRE al centro della pagina, e mai scalato.

Da qui la nostra prima conclusione...
Se all'interno del fla importassimo uno sfondo ipotetico 2000*2000, e lo centrassimo nella pagina...avremmo uno sfondo in flash che "riempie" la pagina a qualunque risoluzione lasciando il contenuto del filmato sempre al centro.

Tutto quanto detto fino ad ora...porta inevitabilmente ad una osservazione sulle coordinate all'interno dello stage. dove si trova la coordinata 0,0? Sempre in alto a sinistra? No...
Ovvero: supponiamo che la nostra finestra html sia 1000*800...la coordinata 0,0 sarà 200 pixels a destra rispetto al bordo della pagina e 100 pixels più giù rispetto al bordo superiore.

Ecco un'immagine per capire meglio.



Avrete intuito che Stage.align funziona con le iniziali dei vari allineamenti possibili:

T sta per TOP, L per left, TR TOP+RIGHT e via cosi...
Ci preoccupa di piu il fatto che, visivamente, le coordinate 0,0 cambiano (giustamente) a seconda dell'impostazione scelta.

Il consiglio, nonchè la procedura che utilizzeremo, andrà in due direzioni separate:

1 - lasciare Stage.align al suo valore di default.
2- modificarlo in "TL" , per poter avere le coordinate 0,0 sempre in alto a sinistra.

Nulla vi vieta in casi specifici di utilizzare qualunque altro tipo di allineamento.

Nella seconda parte del tutorial, vedremo come, attraverso l'uso di Stage.width e Stage.height (che leggono a runtime larghezza e altezza del filmato) combinato con un apposito LISTENER, potremo arrivare a simulare tipici comportamenti di allineamento/scala/riposizionamento proporzionale alle dimensioni visualizzate delle pagine html, ma all in flash.

Ti potrebbe interessare anche

commenta la notizia

Ci sono 1 commenti