Я делаю интерактивную карту в as3/flash cs6. На данный момент у меня есть, чтобы увеличивать и уменьшать масштаб, и тащиться.Как ограничить область перемещением мувиклипа?
Но мой вопрос: как ограничить область, которую можно перетащить, так что вы не можете видеть пустое пространство за ее пределами?
Вот мой код:
import flash.events.MouseEvent;
function initDragger(mc:MovieClip):void
{
mc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
mc.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
}
function mouseDownHandler(e:MouseEvent):void
{
e.currentTarget.startDrag();
}
function mouseUpHandler(e:MouseEvent):void
{
e.currentTarget.stopDrag();
}
// Set up drag
initDragger(map);
zoomIn.addEventListener(MouseEvent.CLICK, mapzoomin);
function mapzoomin(event:MouseEvent):void
{
if (map.scaleX < 10)
{
map.scaleX += 1;
map.scaleY += 1;
}
}
zoomOut.addEventListener(MouseEvent.CLICK, mapzoomout);
function mapzoomout(event:MouseEvent):void
{
if (map.scaleX > 1)
{
map.scaleX -= 1;
map.scaleY -= 1;
}
}
startDrag может принимать прямоугольник (связанный), где вы можете перетащить элемент. Взгляните на http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Sprite.html#startDrag%28%29 – Urosan
Хорошо, я вижу. Так что я просто делаю границы такими же, как моя карта? –