Actionscript 3 如何覆盖x和y属性的设置,以便在AS3中拖动组件?

Actionscript 3 如何覆盖x和y属性的设置,以便在AS3中拖动组件?,actionscript-3,flash,apache-flex,drag-and-drop,flex4,Actionscript 3,Flash,Apache Flex,Drag And Drop,Flex4,我有一个名为PaneledVideoPod的Spark组类型,我正试图通过限制使这些东西可以拖动。也就是说,我不希望用户能够部分地将这些东西从屏幕上拖走。在实现拖动功能的几乎任何部分时,我都注意到Flex通常不能很好地处理这些东西……但我不想在这方面离题太多 Flex实现中的一个棘手问题是,该组的x和y属性在使用药物时发生了更改,但当我试图覆盖x和y的设置程序时,什么也没有发生: override public function set x(value:Number):void { Al

我有一个名为PaneledVideoPod的Spark组类型,我正试图通过限制使这些东西可以拖动。也就是说,我不希望用户能够部分地将这些东西从屏幕上拖走。在实现拖动功能的几乎任何部分时,我都注意到Flex通常不能很好地处理这些东西……但我不想在这方面离题太多

Flex实现中的一个棘手问题是,该组的x和y属性在使用药物时发生了更改,但当我试图覆盖x和y的设置程序时,什么也没有发生:

override public function set x(value:Number):void
{
    Alert.show("spam"); // x is still set just fine from the dragging, and no
                        // Alert message is shown.
}
在调用stopDrag()之前,尝试响应移动事件是不起作用的(我使用的是startDrag()和stopDrag()。出于多种原因,我不想通过计时器来处理这个问题


如果我不能为了拖动startDrag()和stopDrag()而直接覆盖x和y的setter,那么我可以使用什么来可靠地立即防止x和y被设置在某个范围之外?我一直在经历一些尝试和错误,但我发现的任何东西都有可靠性、时间性或两者都有问题。谢谢

使用startDrag()的可选第二个参数,该矩形指定约束组件拖动的边界。

使用startDrag()的可选第二个参数,指定边界以约束组件拖动的矩形。

如果同时重写getter会发生什么?是否尝试传入边界矩形(startDrag的第二个参数)?谢谢,Donald,这很有效。把它变成一个答案,我会接受。如果你也重写了getter会怎么样?你试过传递边界矩形(startDrag的第二个参数)吗?谢谢,Donald,这很有效。把它变成一个答案,我会接受的。