StageExt Class: filmati ridimensionabili in Flash
martedì 16 ottobre, 2007La tecnica del Fullsize (anticamera per il Fullscreen - di cui parleremo in seguito) era, fino a poco tempo fa, utilizzata soprattutto nelle applicazioni Flash (RIA), composte quindi da una più o meno complessa interfaccia utente, dove il contenitore (Adobe AIR, Browser o il Player stand-alone) ridimensionato dall'utente, costringeva ad un riposizionamento degli oggetti componenti il filmato. Al ridimensionamento del contenitore segue ovviamente una funzione di disegno o Refresh in grado di riposizionare i MovieClip o ridisegnare runtime l'interfaccia in base alle nuove dimensioni del contenitore. Oggi questa tecnica è utilizzata anche nei siti web più avanzati o articolati, rendondo l'interfaccia estremamente piì accattivante. L'implementazione di questa tecnica è abbastanza semplice e sfrutta sostanzialmente l'oggetto Stage nativo di Flash e introdotto con la versione MX. Per la sua implementazione ecco una classe che permette di ottenere le coordinate dell'area dello Stage:
-
/**
-
*
-
* @file StageExt.as
-
* @author Giovambattista Fazioli (g.fazioli@undolog.com)
-
* @web http://www.undolog.com
-
* @email g.fazioli@undolog.com
-
*/
-
class StageExt {
-
// release
-
// properties
-
//
-
trace("StageExt::constructor");
-
//
-
__movieWidth = w;
-
__movieHeight = h;
-
//
-
}
-
/**
-
* onResize() event
-
*/
-
private function onResize() {
-
//
-
-
// La coordinata x (in alto a sinistra)
-
-
-
// La coordinata x (in alto a destra)
-
-
-
// La coordinata y (in basso)
-
-
}
-
/**
-
* Refresh()
-
*/
-
public function Refresh() {
-
onResize();
-
}
-
/**
-
* Left - get
-
*/
-
return (__left);
-
}
-
/**
-
* Top - get
-
*/
-
return (__top);
-
}
-
/**
-
* Right - get
-
*/
-
return (__right);
-
}
-
/**
-
* Bottom - get
-
*/
-
return (__bottom);
-
}
-
/**
-
* MovieWidth - get/set
-
*/
-
return (__movieWidth);
-
}
-
__movieWidth = v;
-
}
-
/**
-
* MovieHeight - get/set
-
*/
-
return (__movieHeight);
-
}
-
__movieHeight = v;
-
}
-
}
Tramite questa classe diventa semplice riposizionare MovieClip all'interno dell'area di Stage:
-
var se:StageExt = new StageExt(320,256);
-
//
-
//
-
this._x = x; this._y = y;
-
}
-
//
-
function onResize() {
-
trace("Custom Resize "+this+" - "+se.Left);
-
//clip_mc._x = se.Left;
-
//clip_mc._y = se.Top;
-
clip_mc.move(se.Left, se.Top);
-
}
Nell'esempio le dimensione dello Stage originali sono 320x256. Queste vanno inserite e considerate in quanto Flash in modalità noScale centra il filmato all'interno del browser. Inoltre nel codice HTML bisogna impostare come dimensioni 100%, si aper la width che per l'heght; OBJECT ed EMBED.
Inoltre bisogna organizzare la gerarchia dei MovieClip in modo opportuno e considerare sempre che la posizione di un MovieClip diventra ora "relativa".










19

[...] Il codice necessario per impostare il fullscreen è semplicissimo e sfrutta l'oggetto Stage discusso su questo Blog in StageExt Class: filmati ridimensionabili in Flash: PLAIN TEXT Actionscript: [...]
Ciao,
una domanda: dove dovrei inserire questi 2 script?
Grazie,
G.
@Larry:
Il primo "sorgente" è una classe che puoi inserire in qualsiasi punto del tuo codice tramite l'istruzione
include. Il secondo sorgente è un'esempio del suo uso. Vedi Actionscript 3.0 for beginners: lesson #1 su come impostare un semplice progetto in Flash.