I have some movieClips on stage which are draggable and I **dont **want them to be draggable outside of a visible stage area.
Problem is these movieClips are inside a sprite which is pannable and then for whatever reason this bounds doesnt work anymore as I intened it to.
How do I fix this bounds?
var arr:Array = [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10];
var thumbSprite:Sprite = new Sprite();
addChild(thumbSprite);
for each (var item in arr) {
item.addEventListener(MouseEvent.MOUSE_DOWN, startDragCard, false, 0, true);
item.addEventListener(MouseEvent.MOUSE_UP, stopDragCard, false, 0, true);
thumbSprite.addChild(item);
}
function startDragCard(e:MouseEvent):void {
removeEventListener(Event.ENTER_FRAME, panThumbs);
**var bounds:Rectangle = new Rectangle(0, 0, stage.stageWidth - m1.width, stage.stageHeight - m1.height);**
**e.target.startDrag(false, bounds);**
}
function stopDragCard(e:MouseEvent):void {
** e.target.stopDrag();**
addEventListener(Event.ENTER_FRAME, panThumbs, false, 0, true);
}
addEventListener(Event.ENTER_FRAME, panThumbs, false, 0, true);
function panThumbs(e:Event):void {
var xRange:Number = thumbSprite.width - stage.stageWidth;
var yRange:Number = thumbSprite.height - stage.stageHeight;
var xPercent:Number=mouseX /stage.stageWidth;
var yPercent:Number=mouseY/stage.stageHeight;
var xNumPixels:Number = xPercent * xRange;
var yNumPixels:Number = yPercent * yRange;
if (thumbSprite.width> stage.stageWidth) {
thumbSprite.x += (- xNumPixels - thumbSprite.x) / 5;
}
if (thumbSprite.height>stage.stageHeight) {
thumbSprite.y += (- yNumPixels - thumbSprite.y) / 5;
}
}
I have attached the fla if you want to take a look at.