Salve a tutti !
Avete notato che nella
versione Actionscript 3.0 è apparso un nuovo metodo: il getBounds ?
Questo metodo è implementato nella classe DisplayObject e quindi può essere utilizzato anche dalle classi
MovieClip e
Sprite ( dato che ereditano da DisplayObject ).
Il metodo getBounds vuole un parametro che si chiama targetCoordinateSpace e sta ad indicare quale DisplayObject utilizzare in modo da definire quali coordinate utilizare ( se locali o globali ).
Restituisce una istanza Rectangle con le proprietà di x, y, width, height, left, ecc ecc dell' oggetto associato al metodo.
Spesso capita di dover posizionare degli oggetti in base alla posizione di altri oggetti e bisogna sempre fare calcoli matematici.
In questi casi, con il metodo getBounds ci semplifichiamo la vita.
Vediamo come utilizzarlo...
Creo un FLA che salvo con nome ' main.fla '.
Al suo interno creo e istanzio sullo stage 2 MovieClip.
Una di forma rettangolare con nome rect_mc e l' altra di forma quadrata con nome square_mc.
Se volessi posizionare la x e la y di square_mc subito dopo rect_mc, dovrei scrivere:
Code:
square_mc.x=rect_mc.x+rect_mc.width;
square_mc.y=rect_mc.y+rect_mc.height;
utilizzando getBounds, potrei farlo in questo modo:
Code:
var bound:Rectangle=rect_mc.getBounds(this);
square_mc.x=bound.right;
square_mc.y=bound.bottom;
ottenendo il seguente risultato:
Questo metodo è molto interessante, in quanto se abbiamo un' applicazione nella quale necessitiamo di calcolare le distanze di ogni oggetto in base alla posizione degli altri oggeti, allora basterebbe creare una istanza Rectangle con getBounds di ogni oggetto sullo stage e poi utilizzare le sue proprietà left, right, top e bottom per posizionare gli oggetti.
Stay tuned !