Ich habe eine Leinwand, auf der ich Formen wie Rechteck usw. zeichne. Wenn ich die Form mit meinem benutzerdefinierten Maus-Down-/Mausbewegungs-Handler verschiebe, kann die Form außerhalb der Elterngrenzen gehen.Wie verhindere ich das Ziehen außerhalb des übergeordneten Containers in Flex/Flash?
Ich bin Überprüfung, wenn das Kind außerhalb der Grenze der Eltern ist es zu schnappen zurück:
var bounds:Rectangle = this.getBounds(this.parent);
var p:Point;
if (bounds.x <0) {
p = new Point(0,0);
p.offset(-bounds.x,0);
}
if (bounds.y <0) {
if (!p) p = new Point(0,0);
p.offset(0,-bounds.y);
}
if (bounds.y+bounds.height > this.parent.height) {
if (!p) p = new Point(0,0);
p.offset(0,-bounds.y-height+this.parent.height);
}
if (bounds.x+bounds.width > this.parent.width) {
if (!p) p = new Point(0,0);
p.offset(-bounds.x-width+this.parent.width,0);
}
if (p) {
trace("invoking snapInside ", p);
snapInside(p);
Die snapInside Methode aufgerufen wird, wenn ich außerhalb der linken oder oberen Grenze gehen. Aber wenn das Kind außerhalb der rechten oder unteren Grenze gezogen wird, finde ich, dass die Flex/Flash-Laufzeit automatisch die Höhe und Breite des Elternteils erweitert. Also sagen Sie, die Elterngröße war anfänglich 800x600, wenn Kind Y Grenzen von 800 von sagen wir 20 Pixel überschreitet, finde ich die this.parent.Height automatisch von Flex auf 820 skaliert !!
Wie verhindere ich, dass die Größe der Eltern geändert wird, wenn das Kind die ursprünglichen Grenzen der Eltern überschreitet?
warum nicht startDrag (false, new Rectangle (... Grenzen ...)) – alxx