У меня есть приложение, в котором пользователь загружает изображение, а затем преобразует его, щелкая, перетаскивая и используя панель изменения размера. Но мой клиент попросил меня ограничить область, куда пользователь может перетащить, это не проблема, за исключением того, что мне нужны ограничения, противоположные тому, что считается нормальным.
Так что, где у меня есть startDrag (false, новый Rectangle ...), который работает просто отлично, но мне нужно, чтобы пользователь мог перетаскивать за пределы границ и не иметь пустого пространства внутри вспышки файл.
Я имею в виду, что у меня есть флэш-файл шириной 500px и изображение внутри, которое я небрежно тащу вокруг. Если правый край изображения (если я перетаскиваю влево) достигает 500 пикселей, он прекращает перетаскивание и не позволяет им тянуть его дальше влево.
Я искренне надеюсь, что объяснил это хорошо, любое руководство было бы потрясающим!
Ниже приведен код, который у меня есть для событий перетаскивания.
Любая помощь будет очень признательна.
public function startImageDrag (e:MouseEvent):void {
mousePos['x'] = e.target.mouseX;
mousePos['y'] = e.target.mouseY;
imageDraggable.removeEventListener(MouseEvent.MOUSE_DOWN, function ():void {});
photoapp.cStage.addEventListener(MouseEvent.MOUSE_MOVE, moveImage);
photoapp.cStage.addEventListener(MouseEvent.MOUSE_UP, endImageDrag);
}
//The type is wildcarded because I have this hooked to MOUSE_LEAVE too
public function endImageDrag (e:*):void {
photoapp.cStage.removeEventListener(MouseEvent.MOUSE_MOVE, moveImage);
photoapp.cStage.addEventListener(MouseEvent.MOUSE_DOWN, startImageDrag);
}
public function moveImage(event:MouseEvent):void {
//Get the offset of the current mouse position over the image
var
//The mouse position on the stage
sxOff:Number = photoapp.cStage.mouseX,
syOff:Number = photoapp.cStage.mouseY,
//The position on which the mouse down event was on the image
reX:Number = sxOff - mousePos['x'],
reY:Number = syOff - mousePos['y'],
//The iamge object
i:DisplayObject = imageDraggable;
//Move the image
if (/*I have no idea now...*/) {
imageDraggable.x = reX;
}
if (iY) {
imageDraggable.y = reY;
}
event.updateAfterEvent();
}