
Код AS1/AS2:
//// Флаг, сохранять ли пропорции
var constrain:Boolean = false;
////
var mc:MovieClip = _root.createEmptyMovieClip("mc", 20);
mc.lineStyle(0,0,0);
mc.beginFill(0x66aa66);
mc.moveTo(10,20);
mc.lineTo(200,240);
mc.lineTo(300,50);
mc._x = 100, mc._y = 80
mc.onPress = startScale;
mc.onRelease = mc.onReleaseOutside = stopScale;
////
var startX:Number;
var startY:Number;
var startXscale:Number;
var startYscale:Number;
var koefXY:Number;
////
var centerX:Number = mc._x + mc._width/2;
var centerY:Number = mc._y + mc._height/2;
////
function startScale () : Void
{
startXscale = this._xscale;
startYscale = this._yscale;
startX = _root._xmouse;
startY = _root._ymouse;
var kx = Math.sqrt(Math.pow(startX - centerX, 2) + Math.pow(startY - centerY, 2));
koefXY = startXscale/kx;
this.onMouseMove = dragScale;
}
function stopScale () : Void
{
this.onMouseMove = null;
}
function dragScale () : Void
{
//// SCALE XY
var xdir:Number = (startXscale>0 ? 1 : -1);
var ydir:Number = (startYscale>0 ? 1 : -1);
var vx:Number = (centerX > startX) ? startX - _root._xmouse : _root._xmouse - startX;
var vy:Number = (centerY > startY) ? startY - _root._ymouse : _root._ymouse - startY;
if(constrain)
{
var dirX = (_root._xmouse > centerX)&&(startX > centerX) ? 1 : (_root._xmouse < centerX)&&(startX < centerX) ? 1 : -1;
var dirY = (_root._ymouse > centerY)&&(startY > centerY) ? 1 : (_root._ymouse < centerY)&&(startY < centerY) ? 1 : -1;
var deltaXY = Math.sqrt(Math.pow(centerX - _root._xmouse, 2) + Math.pow(centerY - _root._ymouse, 2));
this._yscale=this._xscale = koefXY*deltaXY*dirX*dirY;//
}
else
{
this._xscale = startXscale + vx*xdir;
this._yscale = startYscale + vy*ydir;
}
//// XY
var _xdir:Number = (this._xscale>0 ? 1 : -1);
var _ydir:Number = (this._yscale>0 ? 1 : -1);
this._x = centerX - this._width*_xdir/2;
this._y = centerY - this._height*_ydir/2;
////
updateAfterEvent();
}
Скажите, почему когда размер именяемого клипа делаем больше или меньше 100, то клип за который тянем для изменения первого, не находится в правом нижнем углу первого?