Grundlagen: Positionierung von Objekte

Artikel: Positionierung von Objekte, ActionScript - Grundlagen | 03.10.2009

Es gibt die Möglichkeit eine Flashdatei über den Flashplayer mit "salign" oder "align" zu positionieren.
Möchte man jedoch mehr dynamik innerhalb der Flashdatei haben, so ist dies natürlich auch mit über ActionScript möglich.
Dieser Artikel soll die grundlegen Möglichkeiten erklären so das man diese indiviuel verwenden kann.

Inhalt

Positionierung der Bühne(Stage) mit Stage Align

Die einfachste Positionierung funktioniert über Stage.align hier legt man fest wo die komplette Stage positioniert werden soll, falls die Stage kleiner ist als der Anzeigebereich.
Es ist auch möglich dies direkt über die Einstellungen für den Flashplayer mit den Param TAGs festzulegen.
Jedoch lässt sich über ActionScript dies zu jederzeit und dynamisch ändern.

Die nachfolgende Tabelle zeigt eine Übersicht der möglichen Werte.
In ActionScript 3 existiert für jeden Wert auch eine entsprechende static Variable somit sollte diese auch verwendet werden.

WertVertikal PositionHorizontal Position
Ttopcenter
Bbottomcenter
Lcenterleft
Rcenterright
TLtopleft
TRtopright
BLbottomleft
BRbottomright

Die Standarteinstellung ist zentriert, wird also kein Wert oder ein leerer Wert angegeben so wird die Flashdatei zentiert dargestellt.
Wird einer der Button der Beispieldatei gedrück, so wird die Stage über ActionScript entsprechend positioniert.

ActionScript 2 - Beispiel:
btn_top.onRelease = function() { Stage.align = "T"; }; btn_bottom.onRelease = function() { Stage.align = "B"; }; btn_left.onRelease = function() { Stage.align = "L"; }; btn_right.onRelease = function() { Stage.align = "R"; }; btn_top_right.onRelease = function() { Stage.align = "TR"; }; btn_top_left.onRelease = function() { Stage.align = "TL"; }; btn_bottom_right.onRelease = function() { Stage.align = "BR"; }; btn_bottom_left.onRelease = function() { Stage.align = "BL"; };

Bei ActionScript 2 muss die Positionierung als entsprechender Text übergeben werden.

ActionScript 3 - Beispiel:
trace(this.stage.align); btn_top.addEventListener(MouseEvent.MOUSE_UP, function() { stage.align = StageAlign.TOP; }); btn_bottom.addEventListener(MouseEvent.MOUSE_UP, function() { stage.align = StageAlign.BOTTOM; }); btn_left.addEventListener(MouseEvent.MOUSE_UP, function() { stage.align = StageAlign.LEFT; }); btn_right.addEventListener(MouseEvent.MOUSE_UP, function() { stage.align = StageAlign.RIGHT; }); btn_top_right.addEventListener(MouseEvent.MOUSE_UP, function() { stage.align = StageAlign.TOP_RIGHT; }); btn_top_left.addEventListener(MouseEvent.MOUSE_UP, function() { stage.align = StageAlign.TOP_LEFT; }); btn_bottom_right.addEventListener(MouseEvent.MOUSE_UP, function() { stage.align = StageAlign.BOTTOM_RIGHT; }); btn_bottom_left.addEventListener(MouseEvent.MOUSE_UP, function() { stage.align = StageAlign.BOTTOM_LEFT; });

Da in ActionScript 3 entsprechende statische Variablen vorhanden sind, verwenden wir diese.
Statische Variablen bieten den Vorteil der besseren lesbarkeit, auserdem können diese besser komprimiert werden als reiner Text.
Es ist natürlich auch Möglich in ActionScript 3 entsprechenden String Werte direkt zu verwenden.

Positionierung einzelner Objekte auf der Bühne(Stage)

Innerhalb Flash ist es möglich einzelne Objekte absolute zu positionieren, so kann genau festgelegt werden wo sich einzelne Objekte befinden sollen.
Das nachfolgende Beispiel soll zeigen wie dies grundlegend aussehen kann, hier wird einfach ein Wert für die Y-Achse und die X-Achse ausgewählt.
Durch den Klick auf "Erstelle Objekt" wird dann ein entsprechendes Objekt auf diesen Kordinaten erstellt.
Falls man die Mitte treffen will, müssten hier die Werte Y:275 X:200 verwendet werden.

ActionScript 2 - Beispiel:
mc_circle._y = 100; mc_circle._x = 200;

Bei diesen Beispiel wird der entsprechende MovieClip names "mc_circle" auf die Position Y:100 X:200 bewegt.
Man könnte diese natürlich auch basierend auf Events oder innerhalb einer Schleife bewegen.

ActionScript 3 - Beispiel:
mc_circle.y = 100; mc_circle.x = 200;

In ActionScript 3 wurde einiges optimiert, so das die Position nun direkt mit "y" und "x" angesprochen wird und nicht mehr mit "_y" und "_x".