почти добился желаемого:

Код AS1/AS2:
import flash.geom.Matrix;
matrix = mc.transform.matrix;
onMouseMove = function ():Void {
//_______ определение ростояния до середины символа
udalX = Math.abs(_xmouse-mc._x);
udalY = Math.abs(_ymouse-mc._y);
//_______ определение к какой оси мы ближе
if (Math.abs(_xmouse-mc._x)<Math.abs(_ymouse-mc._y)) {
D = udalX;
} else {
D = udalY;
}
//________________ В зовисимости от того в какой четверти находимся определяем знак
//верхний правый угол
if ((_xmouse-mc._x)>0 && (_ymouse-mc._y)<0) {
Dx = D;
}
//нижний правый угол
if ((_xmouse-mc._x)>0 && (_ymouse-mc._y)>0) {
Dx = -D;
}
// нижний левый угол
if ((_xmouse-mc._x)<0 && (_ymouse-mc._y)>0) {
Dx = D;
}
// верхний левый угол
if ((_xmouse-mc._x)<0 && (_ymouse-mc._y)<0) {
Dx = -D;
}
//_______ scew X
matrix.b = 0+Dx/1000;
mc.transform.matrix = matrix;
};
Одноко, остался один момент, когда мышка находится справого или левого края по середине, то кружок круглый становится, а необходимо что бы он так же овальным был, то есть получается необходимо

Код AS1/AS2:
matrix.a
, то же самое и для вертикальной плоскости

Код AS1/AS2:
matrix.d
.
Все мои попытки по мпнипуляции

Код AS1/AS2:
matrix.a
и

Код AS1/AS2:
matrix.d
не увеньчались успехом, то есть проблемма в том что у меня в тот момент когда ширина должна уменьшаться уменьшается и высота, не получается незовисимую логику сделать. Может кто сталкивался с этим и подскажит к чему привязываться?
Благодарю
Исхоодник прекрипил