Impostato un clip A da muovere, un clip B che indica lo spazio in cui A deve muoversi, e un clip C al centro di B che indica uno spazio in cui il clip A deve rimanere fermo, ecco il codice per far si che A si muovi con velocità crescente in rapporto alla distanza del mouse dal centro di B, ma solo quando il mouse sarà sopra lo stesso A.
// A = clip da muovere
Tutto il codice è da mettere in un solo frame della linea temporale, vicino ad un altro vuoto per creare un ciclo.
// B = range di movimento
// C = range di immobilità
aw = a._width;
bx = b._x;
bw = b._width;
cx = c._x;
cw = c._width;
zero = bx+bw/2;
// centro range mov.
V = 0.5; // velocità
// MX = valore _xmouse su asse zero
if ((_xmouse>cx) && (_xmousecx) {
mx = _xmouse-zero-cw/2;
} else if (_xmouse< (cw+cx)) {
mx = _xmouse-zero+cw/2;
}
// movimento
if (a.hitTest(_root._xmouse, _root._ymouse, true)) { // solo se mouse sopra A
if ((a._xbx+bw)) {
a._x = a._x-(V*mx);
}
}
// fermo ai margini
if (a._x>=bx) {
a._x = bx-0.01;
}
if (a._x+aw< =bx+bw) {
a._x = bx+bw-aw+0.01;
}
Questo codice è stato scritto in FlashMX: scrolling-horiz-mouse.zip