Per eliminare il problema di dover creare una sorta di pulsante che reagisca agli eventi del mouse, puoi utilizzare un listener.
Per eliminare la "traccia" lasciata durante il disegno della linea, devi ripulire ogni volta il contenitore prima di ridisegnare la linea. Ti servirà quindi il metodo clear().
Inoltre al posto dell'evento onEnterFrame utilizzerei un evento onMouseMove, più confacente per quello che devi fare.
l utente clicca sullo stage,a quel punto compare la linea retta che parte dal punto cliccato e "segue" il cursore, finché ricliccando la retta si "ferma", in poche parole come fa la retta di flash.
Questo non è del tutto vero.
Lo "Strumento Linea" di flash non funziona proprio in quel modo.
Per disegnare una linea si dovrà "premere" il mouse", "trascinare" con il mouse premuto e "rilasciare" il mouse in modo che la linea resti disegnata.
Il tuo metodo differisce un po' perché prevede che si clicchi una prima volta (quindi premendo e rilasciando il mouse) per impostare un punto iniziale, poi, una volta avvenuto il "trascinamento", si clicchi nuovamente per fissare la linea.
Ti posto un esempio fatto al volo:
Codice PHP:
// creo un oggetto listener
var mouseListener:Object = new Object();
// aggiungo il listener per gli eventi del mouse
Mouse.addListener(mouseListener);
// creo un contenitore per la linea
createEmptyMovieClip("line_mc", 10);
// creo l'evento "pigio il pulsante del mouse"
mouseListener.onMouseDown = function() {
// memorizzo il punto iniziale da cui tracciare la linea
var x_start = _xmouse;
var y_start = _ymouse;
// creo l'evento "muovo il mouse" assegniandolo al clip contenitore
line_mc.onMouseMove = function() {
// ripulisco questo contenitore da qualsiasi disegno creato precedentemente
clear();
// assegno uno stie alla linea da disegnare
lineStyle(5, 0xcccccc, 100);
// imposto il punto iniziale
moveTo(x_start, y_start);
// disegno la linea dal punto iniziale fino alle nuove coordinate
lineTo(_xmouse, _ymouse);
// aggiorno il display per rendere fluida l'animazione al movimento del mouse.
updateAfterEvent();
};
};
// creo l'evento "rilascio il pulsante del mouse"
mouseListener.onMouseUp = function() {
// elimino l'evento "muovo il mouse"
delete line_mc.onMouseMove;
};
Per provarlo, inserisci lo script nel primo frame in un nuovo documento.
In questo caso il funzionamento è come quello dello "Strumento Linea".
Intuisco comunque che tu voglia tracciare più linee consecutive.. giusto?
Se così fosse sarà necessaria qualche modifica.
Fammi sapere.