Zoom med dynamisk center - part II
Jeg har leget lidt med mat's kode fra spørgsmålet her:http://www.eksperten.dk/spm/519357
Jeg har tilføjet en funktion, så man kan trække rundt med kortet, men hvordan undgår jeg, at man kan trække kortet uden for scenen?
Den grundlæggende ide er vel at:
Kortets x ikke må være større end 0
Kortets x+width ikke må være mindre end Stage.width
Kortets y ikke må være større end 0
Kortets y+height ikke må være mindre end Stage.height
Eftersom det er et mc inde i et andet og de begge er centret, har jeg lidt svært ved at overskue det.
Den relevante del af min kode ser sådan her ud:
MovieClip.prototype.moveXY = function(x, y) {
//
// smart kode der checker
//
this._x = x;
this._y = y;
};
map.onLoad = function() {
this._x = Stage.width/2;
this._y = Stage.height/2;
};
map.onLoad();
var mListener = new Object();
mListener.onMouseDown = function() {
mouseDown = true;
offsetX = _root._xmouse-map.inner._x;
offsetY = _root._ymouse-map.inner._y;
};
mListener.onMouseUp = function() {
mouseDown = false;
};
mListener.onMouseMove = function() {
if (mouseDown) {
var x = map.inner._x;
var y = map.inner._y;
var mouseX = _root._xmouse;
var mouseY = _root._ymouse;
map.inner.moveXY(mouseX-offsetX, mouseY-offsetY);
updateAfterEvent();
}
};
Mouse.addListener(mListener);
