guarda un po' se questo va bene:
codice:
MovieClip.prototype.myGetNextHighestDepth = function() {
var hd = -1;
for (var x in this) {
if (typeof (this[x]) == "movieclip") {
hd = (this[x].getDepth()>hd) ? this[x].getDepth() : hd;
}
}
return hd+1;
};
MovieClip.prototype.startMagnetic = function(m) {
var homex, homey, magnet, x0, x1, y0, y1, distancex, distancey, distance, powerx, powery, forcex, forcey;
homex = this._x;
homey = this._y;
magnet = m;
forcex=0;
forcey=0;
this.createEmptyMovieClip("magnetic", this.myGetNextHighestDepth());
this.magnetic.p = this;
this.magnetic.onEnterFrame = function() {
x0 = this.p._x;
y0 = this.p._y;
x1 = this.p._parent._xmouse;
y1 = this.p._parent._ymouse;
distancex = x1-x0;
distancey = y1-y0;
distance = Math.sqrt((distancex*distancex)+(distancey*distancey));
powerx = this.p._x-(((distancex/distance)*magnet)/distance);
powery = this.p._y-(((distancey/distance)*magnet)/distance);
forcex = (forcex+((homex-x0)/2))/1.5;
forcey = (forcey+((homey-y0)/2))/1.5;
this.p._x = powerx+forcex;
this.p._y = powery+forcey;
};
};
MovieClip.prototype.stopMagnetic = function() {
this.magnetic.removeMovieClip();
};
un esempio:
codice:
m=100; //prova a regolare m
nomeClip.startMagnetic(m);
per rimuovere l'effetto:
codice:
nomeClip.stopMagnetic();