Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

effetto MOUSE_MOVE

This is a discussion on effetto MOUSE_MOVE within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Ciauz ! Ecco un altro esempio di come creare delle animazioni con Actionscript 3.0 e Flash CS3 . Questa volta si ...


Go Back   Forum Flash CS3 Flash CS4 > Flash CS3 e Actionscript 3.0 > Articoli e tutorials

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 31-10-07, 06:40
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
effetto MOUSE_MOVE

Ciauz !

Ecco un altro esempio di come creare delle animazioni con Actionscript 3.0 e Flash CS3.
Questa volta si tratta di un Mouse Trailer, un effetto basato sull' evento Event.MOUSE_MOVE.
Inoltre utilizzo 2 classi sfruttando l' ereditarietà di Actionscript 3.0 .
Questo effetto, a mio parere, trova diverse applicazioni pratiche:
- una header di un blog o di un portale
- come pagina di introduzione al vostro sito personale
- come banner pubblicitario

Chiaramente, come sempre del resto, potete modificarlo a vostro piacimento e non dimenticate che gli esempi di FlepStudio cercano sempre di mantenere un background didattico.

Ho già ' parlato ' abbastanza, vediamo l' effetto...

Sposta il mouse sull' SWF:






Creo un FLA che salvo con nome ' main.fla '.
Al suo interno ho due MovieClip nella liberia con nomi mc_daisy e ma_aster.
Sono associate rispettivamente alle classi Daisy e Aster ( che andrò a creare tra poco ).

Prima di creare la Document Class, tengo a specificare che in questo esempio sfrutto l' ereditarietà di Actionscript 3.0 in questo modo:
- la DC ( Main.as ) estende la MovieClip
- Daisy estende la MovieClip
- Aster estende Daisy

Adesso creo la Document Class, un file AS che salvo con nome ' Main.as ', implementata in questo modo:
Code:
package
{
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	
	public class Main extends MovieClip
	{
		private var flowers_array:Array=new Array(Daisy,Aster);
		
		public function Main()
		{
			stage.addEventListener(MouseEvent.MOUSE_MOVE,createFlower);
		}
		
		private function createFlower(evt:MouseEvent):void
		{
			var n:int=Math.floor(Math.random()*2);
			var flower:MovieClip=new flowers_array[n];
			addChild(flower);
		}
	}
}
La classe Daisy.as ( alla quale è associata la MovieClip mc_daisy che è nella libreria del FLA ):
Code:
package
{
	import flash.display.MovieClip;
	import flash.events.Event;
	
	public class Daisy extends MovieClip
	{
		private var speed:Number;
		
		public function Daisy()
		{
			addEventListener(Event.ADDED_TO_STAGE,init);
		}
		
		private function init(evt:Event):void
		{
			removeEventListener(Event.ADDED_TO_STAGE,init);
			
			x=parent.mouseX;
			y=parent.mouseY;
			scaleX=scaleY=.3+Math.random();
			speed=4*scaleX+Math.random()*10;
			
			addEventListener(Event.ENTER_FRAME,IamDancing);
		}
		
		private function IamDancing(evt:Event):void
		{
			y+=speed;
			alpha-=speed/100;
			rotation+=speed;
			if(y>=stage.stageHeight||alpha<=0)
			{
				removeEventListener(Event.ENTER_FRAME,IamDancing);
				parent.removeChild(this);
			}
		}
	}
}
La classe Aster.as ( alla quale è associata la MovieClip mc_daisy che è nella libreria del FLA ):
Code:
package
{
	import flash.display.MovieClip;
	import flash.events.Event;
	
	public class Aster extends Daisy
	{
		private var speed:Number;
		
		public function Aster()
		{
			super();
		}
	}
}
Analizziamo il codice

Main.as

Proprietà

un Array che contiene i nomi delle classi Daisy e Aster
private var flowers_array:Array=new Array(Daisy,Aster);

Funzione Costruttrice
aggiungo allo stage un listener in ascolto dell' evento MOUSE_MOVE. In questo modo, quando il mouse si muove viene chiamato il metodo createFlower
stage.addEventListener(MouseEvent.MOUSE_MOVE,creat eFlower);

Metodi
createFlower();
creo una variabile numerica alla quale assegno il valore di un numero random ( in questo caso può solo essere 0 oppure 1 )
var n:int=Math.floor(Math.random()*2);
istanzio la classe che si trova all' elemento n dell' array flowers_array
var flower:MovieClip=new flowers_array[n];
aggiungo l' istanza flower allo stage
addChild(flower);

Ora, dato che le classi Daisy e Aster hanno nella funzione costruttrice un listener in ascolto dell' evento Event.ADDED_TO_STAGE, il comando addChild(flower) farà eseguire il codice della funzione definita appunto con il listener di ADDED_TO_STAGE.

Vediamo.

Daisy.as

Proprietà

una variabile umerica ala quale assegnerò il valore di velocità di caduta del fiore
private var speed:Number;

Funzione Costruttrice
aggiungo un listener in ascolto dell' evento ADDED_TO_STAGE che chiamerà la funzione init al momento in cui questa MovieClip sarà aggiunta allo stage
addEventListener(Event.ADDED_TO_STAGE,init);

Metodi
init();
rimuovo il listener in ascolto di ADDED_TO_STAGE
removeEventListener(Event.ADDED_TO_STAGE,init);
dico di posizionarsi alle coordinate del mouse
x=parent.mouseX;
y=parent.mouseY;
imposto un valore random di scaleX e scaleY
scaleX=scaleY=.3+Math.random();
assegno un valore random alla variabile speed
speed=4*scaleX+Math.random()*10;
faccio partire ENTER_FRAME chiamando il metodo IamDancing
addEventListener(Event.ENTER_FRAME,IamDancing);

IamDancing();
aggiungo alla y il valore di speed
y+=speed;
diminuisco l' alpha di un valore che dipende anche dalla velocità ( quindi dal valore della variabile speed )
alpha-=speed/100;
aumento la rotazione di un valore che dipende anche dalla velocità ( quindi dal valore della variabile speed )
rotation+=speed;
conrollo la y e se è maggiore dell' altezza dello stage oppure se l' alpha è minore o uguale a zero
if(y>=stage.stageHeight||alpha<=0)
{
fermo ENTER_FRAME e, diciamo autorimuovo questa MovieClip
removeEventListener(Event.ENTER_FRAME,IamDancing);
parent.removeChild(this);
}

Aster.as
Questa classe, dato che estende la classe Daisy, ha a disposizione tutte le sue proprietà ed i suoi metodi.
Inoltre, nella funzione costruttrice di Aster attivo l' operatore super(); che chiama la funzione costruttrice di Daisy la quale eseguirà il codice però riferito ad Aster.

Alla prossima & stay tuned !
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #2 (permalink)  
Old 31-10-07, 08:23
Junior Member
 
Join Date: Sep 2007
Posts: 27
Rep Power: 0
floppy is on a distinguished road
Re: effetto MOUSE_MOVE

Ciao
Come fai a fare sì che il file main.fla usi i tre files .as ?

Ho fatto come dici : creato un file "main.fla" con i due simboli mc in libreria, poi ho salvato i tre files .as con i nomi da te indicati, ma non li carica.
In effetti, non c'è nulla nel file .fla che indichi di usare quei 3 .as.

Dove sbaglio ?


Grazie !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #3 (permalink)  
Old 31-10-07, 08:26
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Re: effetto MOUSE_MOVE

Ciao floppy :)

Quote:
Al suo interno ho due MovieClip nella liberia con nomi mc_daisy e ma_aster.
Sono associate rispettivamente alle classi Daisy e Aster ( che andrò a creare tra poco ).
Click destro su mc_daisy in libreria e assegna la classe Diasy
Click destro su mc_aster in libreria e assegna la classe Aster
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #4 (permalink)  
Old 01-11-07, 01:40
Junior Member
 
Join Date: Sep 2007
Posts: 27
Rep Power: 0
floppy is on a distinguished road
Re: effetto MOUSE_MOVE

Da dove ?
Linkage o Properties ?

Grazie ...
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #5 (permalink)  
Old 01-11-07, 06:50
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Re: effetto MOUSE_MOVE

Linkage.
Puoi accederci anche da properties.
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Flash Multi Gallery
  #6 (permalink)  
Old 02-11-07, 01:32
Junior Member
 
Join Date: Sep 2007
Posts: 27
Rep Power: 0
floppy is on a distinguished road
Re: effetto MOUSE_MOVE

Però continua a non funzionarmi
Vabè, domani ci riprovo.
;-(
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #7 (permalink)  
Old 22-11-07, 06:50
Junior Member
 
Join Date: Sep 2007
Posts: 27
Rep Power: 0
floppy is on a distinguished road
Re: effetto MOUSE_MOVE

Niente da fare .... non li carica !
Qualche idea ?

:-(
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #8 (permalink)  
Old 22-11-07, 07:24
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Re: effetto MOUSE_MOVE

Se alleghi i files guardo dov'è l' errore.
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #9 (permalink)  
Old 22-11-07, 16:19
Junior Member
 
Join Date: Sep 2007
Posts: 27
Rep Power: 0
floppy is on a distinguished road
Re: effetto MOUSE_MOVE

Certo.
Provo ad allegare da qui.
Se non funziona li metto su Rapidshare.
fammi sapere.
Grazie mille
Attached Files
File Type: zip files.zip (17.4 KB, 36 views)

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

  #10 (permalink)  
Old 22-11-07, 16:31
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Re: effetto MOUSE_MOVE

floppy !

Non hai dichiarato la Document Class

Nel pannello proprietà in baso devi scrivere Main nel campo Documen Class o Classe Documento se la tua versione è in italiano.
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads

Thread Thread Starter Forum Replies Last Post
Flash CS3 Effetto laser lucavalentino Flash CS3 Design 1 08-11-08 21:31
Actionscript 3 Mouse_move dla86 Flash CS3 generale 5 21-08-08 15:36
Effetto 3D o 2D? manTiz Flash CS3 Design 18 11-03-08 23:12
Effetto impossibile (per me) frog Flash CS3 generale 1 17-02-08 18:11
MOUSE_MOVE effect with Flash CS3 Flep Tutorials 0 07-12-07 06:44


All times are GMT. The time now is 12:21.


Powered by vBulletin versione 3.7.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0 RC4
Forum SiteMap


FlepStudio
by Filippo Lughi
P.IVA 03605860406