Flash/AS3; get/set absolute position von MovieClip?
How do you get/set der absoluten position eines MovieClip in Flash/AS3? Und durch absolute, ich meine seine position relativ zur Bühne ist origo.
Momentan habe ich diese setter:
class MyMovieClip extends MovieClip
{
function set xAbs(var x:Number):void
{
this.x = -(this.parent.localToGlobal(new Point()).x) + x;
}
}
Diese scheint zu funktionieren, aber ich habe das Gefühl, es erfordert, dass die Bühne wird Links ausgerichtet.
Allerdings glaube ich nicht, habe einen getter. Das funktioniert nicht:
public function get xAbs():Number
{
return -(this.parent.localToGlobal(new Point()).x) + this.x; //Doesn't work
}
Ich bin mit dem Ziel für eine Lösung, die funktioniert, und funktioniert mit allen Stufe Ausrichtungen, aber es ist schwierig. Ich bin mit diesem auf einer Stufe, die relativ zum browser-Fenster-Größe.
EDIT: Dies gilt für ein Links-oben ausgerichtet Bühne; nicht sicher über andere:
public function get AbsX():Number
{
return this.localToGlobal(new Point(0, 0)).x;
}
public function get AbsY():Number
{
return this.localToGlobal(new Point(0, 0)).y;
}
public function set AbsX(x:Number):void
{
this.x = x - this.parent.localToGlobal(new Point(0, 0)).x;
}
public function set AbsY(y:Number):void
{
this.y = y - this.parent.localToGlobal(new Point(0, 0)).y;
}
InformationsquelleAutor bzlm | 2008-12-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwei Dinge:
Warum die substractions?
sollten geben Sie das richtige Ergebnis bereits. Wenn der übergeordnete clip skaliert ist, Ihre Berechnung wird durch den Skalierungsfaktor...
Nur ein Schuss im Dunkeln, aber Sie könnte hinzufügen ein
globalToLocal(this.stage)
für die Kompensation der Ausrichtung Probleme?InformationsquelleAutor moritzstefaner
VIELEN DANK!!!!!
BEKOMMEN POSITION DES OBJEKTS RELATVE AUF DER BÜHNE VERWENDEN:
InformationsquelleAutor asdfasdf
Stimmen mit moritzstefaner, dass Sie nicht brauchen, die Subtraktion der Bühne, aber für Ihre setter eigentlich denke ich, Sie verwenden sollten, globalToLocal, und verwenden Sie localToGlobal für Ihre getter. Diese kümmern sich um Skalierung und Drehung sowie die position.
InformationsquelleAutor Iain
konnte ich nicht verwenden localToGlobal so als eine alternative Lösung ist, um die position der Maus in den Bereich, den Sie möchten :
InformationsquelleAutor paranoio