Frage

Ich mag einen großen Movieclip zum Zentrum (1400 px breit) auf meiner Bühne auf der Bühne Größe ändern. Diese große Movieclip bewegt sich nach rechts auf bestimmte Ereignisse, damit ich nicht Code verwenden können:

currentPage.x = ((stage.stageWidth/2) - (currentPage.width/2))

Gibt es eine Möglichkeit, um vielleicht seine von 0 (der linken Seite der Bühne ‚Ansichtsfenster‘) versetzt verwenden und die in Zentrierversatz?

Die MovieClip- ändert sich nur in x.

War es hilfreich?

Lösung

Wenn ein Objekt der Größe verändert wird, können wir sagen, ihr Ausmaß geändert hat. Waagen sind nett, weil sie es uns ermöglichen, in Prozent zu arbeiten. In Anbetracht jeder prozentuale Veränderung können wir die gleiche Änderung an einem anderen Objekt anwenden eine relative Position zu bekommen. Schau mal hier:

var previousStageWidth:Number;

public function handleResize():void {
    //calculate the difference in stage with as a percentage
    var widthScale:Number = previousStageWidth / stage.stageWidth;

    //scale the x value by the same amount
    myDisplayObject.x *= widthScale;

    //update the previous value for the next resize
    previousStageWidth = stage.stageWidth;
}

Wir hoffen, dass für Sie arbeitet.

Andere Tipps

Ich bin lieber Container Sprite für alle Inhalte zu machen. Im Inneren des Behälters wird alles gemessen, als ob Szene immer 400x300 war (oder irgendeine andere Größe festgelegt, was Seitenverhältnis benötigen Sie). Wenn eine Szene geändert wird, ich bin Ändern der Größe und nur um den Behälter zu passen in Zentrierung:

//not really tested because my real code is more complex, so watch out...
var bounds:Rectangle = container.getRect(null);
//scale factor to fit inside
var scaleFactor:Number = Math.min(stage.stageWidth / bounds.width, stage.stageHeight / bound.height);
container.scaleX = container.scaleY = scaleFactor; //scaling
//centering
container.x = (stage.stageWidth - container.width) * 0.5;
container.y = (stage.stageHeight - container.height) * 0.5;

Auf diese Weise können Sie eine beliebige Anzahl von Clips in Behälter handhaben, nicht nur eine. Container verwenden nicht alle Platz auf dem Bildschirm, sondern bewahrt Seitenverhältnis. Wenn Sie den gesamten Platz auf dem Bildschirm verwenden möchten, müssen Sie dynamische Layout Ihrer Bühne auszudenken - etwas, das nur Sie richtig tun

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top