Stage.height > Seltsame Verschiebungen

unomuse

Mitglied
Also; ich habe dieses Script:
PHP:
Stage.scaleMode = "noScale";
Stage.align = "BL";
this.onEnterFrame = function() {
	if (Stage.width<=500) {
		delete this.onEnterFrame;
	}
};
this.onEnterFrame = function() {
	if (Stage.width>=500) {
		menu._y = Stage.height;
		menu._x = Stage.width;
		navi._y = Stage.height-Stage.height;
		navi._x = Stage.width;
	}
};

Wie ihr seht, möchte ich zwei MC's ("menu" und "navi") einmal rechts-oben und einmal rechts unten am Rand des Filmes ausrichten. Wird das Fenster unter 500px skaliert, wird die Ausrichtung angehalten. In der Breite funktioniert das auch problemlos, in der Höhe jedoch geschehen seltsame Dinge. Woran liegt's?
 
Hi,

was denn für seltsame Dinge?

Dir ist schon klar, dass
navi._y = Stage.height-Stage.height;
der navi._y immer 0 zuweist, denn Stage._height - Stage._height ist Null?

Ausserdem hast Du zwei onEnterFrame-Methoden definiert, es kann aber nur eine pro MC geben. Die erste Methode wird daher überschrieben und nie ausgeführt.

Gruß
.
 
PHP:
Stage.scaleMode = "noScale";
Stage.align = "BL";
this.onEnterFrame = function() {
	if (Stage.width>=300) {
		untermenuloader._y = 0;
		untermenuloader._x = Stage.width;
		navi._y = Stage.height;
		navi._x = Stage.width;
	}
};

Ja, das mit Stage.height-Stage-height, war natürlich nur ein verzweifelter Versuch.
Und das mit der Methode, war natürlich auch vollkommen sinnfrei...nundenn, das Problem besteht weiterhin, schau Dir die angehängte Datei einfach mal an. Zum Anfang sind sie ausgerichtet; wenn man jedoch skaliert huschen die MC's vertikal über die Bühne und verschwinden einfach.
 

Anhänge

Zuletzt bearbeitet:
Hi,

Du hast keine Datei angehängt...

Jedenfalls mach Dein Script genau das, was es machen sollte. Deine Clips sind jedenfalls immer ausserhalb des sichtbaren Bereichs, wenn ihre Ankerpunkte links liegen. Wenn Deine Clips rechts und unten ausgerichtet sein sollen, versuch es mal so:
PHP:
Stage.scaleMode = "noScale";
Stage.align = "BL";
var bh = Stage.height;
this.onEnterFrame = function() {
    if (Stage.width>=300) {
        clip1._y = 0;
        clip1._x = Stage.width - clip1._width;
        clip2._y = bh - clip2._height;
        clip2._x = Stage.width - clip2._width;
    }
};

Gruß
.
 
Ja, die Datei wollte er zunächst irgendwie nicht!
Äm.... aber ich habe die Ankerpunkte natürlich oben-rechts bzw. unten- rechts gelegt, von daher ist es nicht notwendig die Breite jewils zu subtrahieren. Aber vielleicht schaust Du es jetzt nocheinmal an. Die Datei hängt da oben.

Vielen Dank für Deine schnellen Antworten!
 
Hi,

ja... geht dennoch genau so, wie ich es in meinem vorherigen Posting beschrieben habe. Beachte die Zeile:
PHP:
var bh = Stage.height;
;)

Grguß
.
 
Was macht denn die Zeile genau? Eigentlich vergibst Du einen Variablen-Namen für Stage.height, der nur für die Function gilt. Warum aber, kann man nicht Stage.height nehmen. Dann hat man nämlich das Problem das die MC's wieder huschen. Also mit der Variable geht es jetzt auch, vielen Dank nochmal, aber verstehen tue ich das nicht so ganz.
 
Zuletzt bearbeitet:
Hi,

die Variable merkt sich die Bühnenhöhe ganz zu Anfang, also die "Originalhöhe", die Du in Flash definiert hast. Da Du die Bühne unten am Player ausrichtest, bringt dir Stage.height wenig, da sich die Höhe ja nach oben ändert... sprich: vertikal ausgerichtete Objekte behalten ihre Position.

Gruß
.
 
Zurück