« Altre videoguide per Adobe CS3 | Index | Google Talk basato su Flash 8 »

um_minilogo.gif Cerchi articoli, tutorial e guide su Photoshop CS3, Flash CS3, Premiere Pro CS3, Actionscript 3, Flex 3 e Adobe AIR, Java e Microsoft Silverlight ?
Scarica gratis UserMatter, il magazine che tratta la User Experience. Nell'ultimo numero trovi anche: Introduzione alla programmazione orientata agli oggetti, Salvare le immagini per il web con una mappatura Alpha

Disegnare forme vettoriali con Flash 8 in run-time

Sicuramente vi sarà capitato di domandarvi (nel caso in cui ovviamente non siate in grado di farlo) se fosse mai possibile creare in Flash forme vettoriali, più o meno complesse, durante la fase di run-time o più semplicemente mentre visualizzate il vostro filmato.
Il tutorial che andremo ad illustrare mostrerà proprio questo: come disegnare in Flash mentre il filmato è in esecuzione.

Partiamo quindi dal concetto che dobbiamo suddividere la nostra attività in 3 fasi principali:


  1. quando pigiamo il mouse (mouseDown)

  2. quando muoviamo il mouse mentre lo premiamo (mouseMove)

  3. quando rilasciamo il mouse perchè abbiamo finito di disegnare (mouseUp)

Non da ultimo, consideriamo che per disegnare, utilizzeremo una movieClip (ovviamente vuota).
Per prima cosa quindi creiamo una clip vuota e un oggetto per i nostri 3 "stati" sovraesposti.

var colora:Object=new Object();
this.createEmptyMovieClip("as_mc", 1);
var disegna:Boolean=new Boolean();
disegna=false;

Abbiamo anche inserito una variabile booleana (disegna) che permetterà a flash di capire che se stiamo muovendo il mouse e la variabile è impostata su false, non deve tracciare alcunchè.
Quindi utilizzeremo l'oggetto "colora" come listener dei tre eventi. Cominciamo col primo:

colora.onMouseDown=function(){
disegna=true;
as_mc.beginFill(0xFF0000, 100);
as_mc.moveTo(_xmouse, _ymouse);
as_mc.lineTo(_xmouse, _ymouse);
}

Questo script permetterà di disegnare dal momento in cui l'utente pigierà il mouse.

colora.onMouseUp=function(){
disegna=false;
}

Qui invece indichiamo a Flash di fermare il disegno quando l'utente rilascia il mouse.

colora.onMouseMove=function(){
if(disegna){
as_mc.lineTo(_xmouse, _ymouse);
updateAfterEvent();
}
}

Con quest'ultimo invece, indichiamo che se la variabile "disegna" è ancora vera - quindi l'utente sta muovendo il mouse mentre lo tiene premuto - Flash continua a disegnare la forma.

Mouse.addListener(colora);
Registriamo quindi l'evento.

TrackBack

TrackBack URL per questo post:
http://blog.augitaly.com/mt-tb.cgi/128

Invia un commento

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Libro Flex 3