да, знаю точно, потому, что программил этот проект.
пиши в приват, если тема еще актуальна.
а вообще всё просто: задаешь минимальный и максимальный предел движения и обсчитываешь позицию
в зависимости от позиции мыши. вот этот код достаточно воткнуть в рут и поиграться
со значениями x_min, y_min, x_max, y_max
Код:
this.setMovedMcClass = function() {
delete this.setMovedMcClass;
var MovedMc = function () {
this.init();
};
MovedMc.create = function(this_mc, name, depth, init_obj) {
var new_mc = this_mc.createEmptyMovieClip(name, depth);
var current_constructor = MovedMc;
new_mc.__proto__ = current_constructor.prototype;
var out_mc = new_mc;
for (var i in init_obj) {
out_mc[i] = init_obj[i];
}
current_constructor.call(out_mc);
return out_mc;
};
//
MovedMc.prototype.__proto__ = MovieClip.prototype;
var tmp = MovedMc.prototype;
//
tmp.init = function() {
this.beginFill(0, 30);
drawSquare(this, 100);
this.onMouseMove();
};
var drawSquare = function (mc, side) {
mc.lineTo(side, 0);
mc.lineTo(side, side);
mc.lineTo(0, side);
mc.lineTo(0, 0);
};
tmp.x_max = 0;
tmp.x_min = 0;
tmp.y_max = 0;
tmp.y_min = 0;
// вот это отвечает за движение
tmp.onMouseMove = function() {
var xfactor = this.x_min+_root._xmouse/Stage.width*(this.x_max-this.x_min);
this._x = Stage.width*xfactor;
var yfactor = this.y_min+_root._ymouse/Stage.height*(this.y_max-this.y_min);
this._y = Stage.height*yfactor;
};
_global.MovedMc = MovedMc;
ASSetPropFlags(_global, 'MovedMc', 7, 1);
};
this.setMovedMcClass();
/// TEST
MovedMc.create(this, "square0_mc", 0, {x_min:0.2, x_max:0.8, y_min:0.2, y_max:0.3})
MovedMc.create(this, "square1_mc", 1, {x_min:0, x_max:0.3, y_min:0.5, y_max:1})