Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

DuplicateMovieClip - rimosso

This is a discussion on DuplicateMovieClip - rimosso within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Permettetemi di dire che sono contento che il metodo DuplicateMovieClip sia stato rimosso. Personalmente ho avuto grossi problemi con le ...


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 links from elsewhere to this Post. Click to view. #1 (permalink)  
Old 20-09-07, 13:40
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
DuplicateMovieClip - rimosso

Permettetemi di dire che sono contento che il metodo DuplicateMovieClip sia stato rimosso.
Personalmente ho avuto grossi problemi con le gestioni delle profondità utilizzando DuplicateMovieclip con Flash8 ed Actionscript 2.0, tanto da accantonarlo a priori e non utilizzarlo mai.
Con Flash CS3, basta utilizzare la keyword new per istanziare una nuova MovieClip.
In questo articolo mostrerò come duplicare delle MovieClips utilizzando il linkage ( identificatore per chi ha Flash versione italiana ) come ho fatto in questo articolo
Saltiamo dentro il vivo dell' articolo...


Creo un FLA che salvo con nome ' duplicate.fla ' al cui interno creo una MovieClip ( senza istanziarla ma lasciandola in Libreria ) con nome mc_clip.
Creo al Document Class, un file As che salvo con nome ' Duplicate.as ', implementata in questo modo:
Code:
package
{
	import flash.display.MovieClip;
	public class Duplicate extends MovieClip
	{
		private const numero_clips:int=100;
		
		private var clips_array:Array;
		
		public function Duplicate()
		{
			duplica();
		}
		
		private function duplica():void
		{
			clips_array=new Array();
			
			for(var i:int=0;i < numero_clips;i++)
			{
				var clip:MyClip=new MyClip();
				addChild(clip);
				
				clip.x=Math.random()*stage.stageWidth;
				clip.y=Math.random()*stage.stageHeight;
				clip.scaleX=.1+Math.random();
				clip.scaleY=.1+Math.random();
				clip.alpha=.2+Math.random();
				clip.rotation=Math.random()*360;
				
				clips_array.push(clip);
			}
		}
	}
}
Adesso creo una Classe e la associo a mc_clip che ho in libreria di duplicate.fla.
Creo un file AS che salvo con nome ' MyClip.as ', implementata in questo modo:
Code:
package
{
	import flash.display.MovieClip;
	
	public class MyClip extends MovieClip
	{
		public function MyClip()
		{}
	}
}
Torno su duplicate.fla , e assegno come identificatore ' MyClip ' a mc_clip che ho in libreria.

Ecco il risultato:










Analizziamo il codice.

Proprietà:

una costante con il numero di clip che voglio duplicare/attaccare
private const numero_clips:int=100;
un Array in cui inserire ogni clip duplicata, è buona regola tenere traccia di ogni clip creata in modo che sipossa recuperare in ogni momento ( anche se non è questo il caso )
private var clips_array:Array;


Metodi:
duplica();
inizializzo l' array
clips_array=new Array();
creo un ciclo con massima iterazione pari al valore della costante numero_clips
for(var i:int=0;i < numero_clips;i++)
{
quì creo una nuova clip ( non è altro che mc_clip della libreria di duplicate.fla )
var clip:MyClip=new MyClip();
dato che MyClip estende la classe MovieClip in quanto mc_clip in libreria è una MovieClip, eredita tutti i metodi e tutte le proprietà della classe MovieClip e quindi la aggiungo al DisplayObject ( altrimenti non sarebbe visibile )
addChild(clip);
assegno un valore random tra lo zero e la larghezza dello stage alla x della clip
clip.x=Math.random()*stage.stageWidth;
assegno un valore random tra lo zero e l' altezza dello stage alla y della clip
clip.y=Math.random()*stage.stageHeight;
assegno un valore random tra 0.1 e 1 alla proprietà scaleX della clip
clip.scaleX=.1+Math.random();
assegno un valore random tra 0.1 e 1 alla proprietà scaleY della clip
clip.scaleY=.1+Math.random();
assegno un valore random tra 0.2 e 1 alla proprietà alpha della clip
clip.alpha=.2+Math.random();
assegno un valore random tra 0 e 360 alla proprietà rotation della clip
clip.rotation=Math.random()*360;
inserisco la clip nell' array
clips_array.push(clip);
}


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

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
attachMovie - rimosso anche quello Flep Articoli e tutorials 7 30-10-08 08:08
swapDepths...rimosso Flep Articoli e tutorials 12 19-06-08 19:12
DuplicateMovieclip...removed! Flep Tutorials 0 27-09-07 13:04
onRelease rimosso Flep Articoli e tutorials 0 19-09-07 13:32


All times are GMT. The time now is 10:48.


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