Ciao
sto cercando di riprodurre una specie di lavagnetta per disegnare linee rette.
nel mio caso quando ci si avvicina all'estremita di una linea gia disegnata, appare un cerchietto attorno all'estremita stessa, che vuole segnalare che se si fa partire la nuova linea da quel punto, essa sara incollata magneticamente all'altra linea.
Il mio problema e' che il cerchietto non sparisce quando ci si allontana dall'estremita della linea.
Posto qui il codice. se volete provarlo e' semplice: basta incollarlo nel primo frame di un filmato e poi crearvi un mc chiamato "cerchio" a mo di tondino.
cio' che non capisco e' xke l'else dell'onMouseMove non funzioni, cioe' non faccia sparire il cerchietto quando non si e' piu' sulle coordinate specificate nell'array.codice:lineacounter = 0; lista = new Array(); someListener = new Object(); function drawToExt(bool, x, y, db, c) { for(i=0; i<db.length; i++) { xy = db[i].split("|"); if(Math.abs(x-xy[0]) <= 3 && Math.abs(y-xy[1]) <= 3) { if(bool==true) _root["linea" + c].moveTo(xy[0], xy[1]); else _root["linea" + c].lineTo(xy[0], xy[1]); break; } else if(Math.abs(x-xy[2]) <= 3 && Math.abs(y-xy[3]) <= 3) { if(bool==true) _root["linea" + c].moveTo(xy[2], xy[3]); else _root["linea" + c].lineTo(xy[2], xy[3]); break; } else { if(bool==true) _root["linea" + c].moveTo(x, y); else _root["linea" + c].lineTo(x, y); } } } someListener.onMouseDown = function () { _root.createEmptyMovieClip ("linea" + lineacounter, lineacounter); with (_root["linea" + lineacounter]) { lineStyle (1, 0x000000, 100); startx = _root._xmouse; starty = _root._ymouse; if(lineacounter==0) moveTo(startx, starty); else drawToExt (true, startx, starty, lista, lineacounter); } }; someListener.onMouseUp = function () { with (_root["linea" + lineacounter]) { endx = _root._xmouse; endy = _root._ymouse; if(lineacounter==0) lineTo(endx, endy); else drawToExt (false, endx, endy, lista, lineacounter); } lineacounter++; dati = startx + "|" + starty + "|" + endx + "|" + endy; lista.push(dati); }; someListener.onMouseMove = function () { posx = _root._xmouse; posy = _root._ymouse; for(i=0; i<=lineacounter; i++) { xy = _root.lista[i].split("|"); if(Math.abs(posx-xy[0]) <= 3 && Math.abs(posy-xy[1]) <= 3) { _root.cerchio._visible = true; _root.cerchio._x = xy[0] - 5; _root.cerchio._y = xy[1] - 5; } else if(Math.abs(posx-xy[2]) <= 3 && Math.abs(posy-xy[3]) <= 3) { _root.cerchio._visible = true; _root.cerchio._x = xy[2] - 5; _root.cerchio._y = xy[3] - 5; } else _root.cerchio._visible = false; } }; Mouse.addListener(someListener);
Se qualcuno puo' aiutarmi gliene sarei grato.
ciauz,
Ale


Rispondi quotando
