L'oggetto Stage
A grande richiesta, ho deciso di scrivere un tutorial chesarà diviso in varie parti, date le molteplici faccedell'argomento. Oggetto della discussione sarà ilfamigerato oggetto Stage, introdotto dalla versione MX.
Premessa: ha senso utilizzare questo oggetto solo infilmati pubblicati in pagine html con width e height delfilmato settati in percentuale, o comunque variabili.
nel caso di un filmato pubblicato a dimensione fissainfatti, tutti i vantaggi derivanti da questo oggetto vengonoa cadere...ed ora spiegheremo perchè.
Stage.ScaleMode
E' la proprietà dell'oggetto stage cheoverrida le impostazioni di pubblicazione: funziona in tuttoe per tutto come l'attributo scale nelle impostazioni dipubblicazione dell'html, ovvero può essere settatoa "exactFit" , "showAll" ,"noBorder" e "noScale" (valore di default"showAll"). Ma, come ho detto prima, overrida(ovvero sovrascrive) quanto impostato nella pubblicazione, eha il vantaggio di poter essere utilizzato anche neiproiettori (dove l'html non c'è).
Per i fini del nostro tutorial, scriviamo sul primo framedella timeline di un fla bello nuovo di dimensioni 600*400
Codice:
Stage.scaleMode = "noScale"
Ci servirà in seguito...
Stage.align
Questa proprietà è forse la piudelicata...fate molta attenzione. Di default,l'allineamento dell'swf è centrato siainorizzontale che in verticale. Supponendo che il nostrofilmato di test contenga un rettangolo grande come il filmato(600*300).
Se pubblicassimo ora il filmato, senza specificare questaproprietà, (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 ipotetico2000*2000, e lo centrassimo nella pagina...avremmo uno sfondoin flash che "riempie" la pagina a qualunquerisoluzione lasciando il contenuto del filmato sempre alcentro.
Tutto quanto detto fino ad ora...porta inevitabilmente aduna osservazione sulle coordinate all'interno dellostage. dove si trova la coordinata 0,0? Sempre in alto asinistra? No...
Ovvero: supponiamo che la nostra finestra html sia1000*800...la coordinata 0,0 sarà 200 pixels a destrarispetto 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 deivari allineamenti possibili:
T sta per TOP, L per left, TR TOP+RIGHT e via cosi...
Ci preoccupa di piu il fatto che, visivamente, le coordinate0,0 cambiano (giustamente) a seconda dell'impostazionescelta.
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 lecoordinate 0,0 sempre in alto a sinistra.
Nulla vi vieta in casi specifici di utilizzare qualunquealtro tipo di allineamento.
Nella seconda parte del tutorial, vedremo come, attraversol'uso di Stage.width e Stage.height (che leggono aruntime larghezza e altezza del filmato) combinato con unapposito LISTENER, potremo arrivare a simulare tipicicomportamenti di allineamento/scala/riposizionamentoproporzionale alle dimensioni visualizzate delle pagine html,ma all in flash.
