Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-06-2008, 18:55   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2007
Beiträge: 5
Question Stage, stageWidth, stageHeight, Resize

Servus,

offenbar habe ich ein kleines AS3-Verständnisproblem und würde mich freuen, wenn mir jemand auf die Sprünge helfen könnte.
Im Grunde ist es ja ganz leicht:
Ich möchte einen Movieclip beim Resizen in der Mitte ausrichten.
Auf der Bühne befindet sich eine MC-Instanz.
Diese Instanz ist mit folgender Klasse verknüpft:

Code:
package 
{
	import flash.display.MovieClip;
	import flash.display.Stage;
	import flash.events.*;

	public class auszurichtenderMovieclip extends MovieClip
	{
		public function auszurichtenderMovieclip()
		{
			addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		private function init(evt:Event):void
		{
			stage.addEventListener(Event.RESIZE, anStageAusrichten);
		}
		
		private function anStageAusrichten(evt:Event):void
		{
			this.x = stage.stageWidth / 2;
			this.y = stage.stageHeight / 2;
			trace(this.x, this.y);
		}
	}
}
Mein MC wird jedoch nicht in der Mitte ausgerichtet, obwohl das Tracen die richtigen Werte liefert.

Wo ist mein Denkfehler?
cezar ist offline   Mit Zitat antworten
Alt 04-06-2008, 22:58   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Du richtest deinen MC nicht mit seiner Mitte auf die Mitte der Bühne aus, sondern mit seinem linken oberen Punkt. Für die Mitte des MCs solltest du noch die Hälfte der Höhe/Breite des MCs abziehen, also:
PHP-Code:
this.= (stage.stageWidth this.width)/ 2;
this.= (stage.stageHeight this.height) / 2;
trace(this.xthis.y); 
  Mit Zitat antworten
Alt 04-06-2008, 23:34   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2007
Beiträge: 5
Danke für Deine Antwort!
Jedoch lag der Registrierungspunkt meines MC´s bereits in der Mitte.

Das Problem war ein anderes. Mir war nicht ganz klar, dass ich in der Hauptzeitleite außer

Code:
stage.scaleMode = StageScaleMode.NO_SCALE;
auch

Code:
stage.align = StageAlign.TOP_LEFT;
benötige, damit der Code einwandfrei funktioniert.
Wenn man das stage.align weglässt, dann wird der Inhalt standardmäßig mittig ausgerichtet. Und dann ist es mit stage.stageWidth/ stage.stageHeight doppelt gemoppelt.

Trotzdem Danke!
cezar ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele