Buongiorno, sto iniziando a vedere un po' di AS3 (era anche ora!), e sto facendo alcuni semplici esperimenti e convertendo cose che ho gia' fatto in AS2. Ed uno di questi semplici script che sto facendo e' quello di fiocchi di neve che vengono generati di continuo, posizionati e ridimensionati a random.
Sembra funzionare tutto, tranne che dopo qualche secondo i fiocchi presenti sullo stage in quel momento bloccano il loro tween verso il basso, nel frattempo vengono giu' di nuovi, ed ogni tanto si ribloccano, e non ne capisco il perche'
L'swf e' questo

il codice nella classe e' il seguente:
Codice PHP:
package {

    
import flash.display.MovieClip;
    
import flash.events.*;
    
import fl.transitions.Tween;
    
import fl.transitions.easing.*;



    public class 
letsnow extends MovieClip {

        public var 
counter:Number 0;
        public var 
newsnow:Number 15;
        public var 
range:Number 30;
        public var 
flake:Number 0;

        public function 
letsnow() {
            
this.addEventListener(Event.ENTER_FRAME,createsnow);
        }
        private function 
createsnow(e:Event):void {
            if (
counter == newsnow) {
                
flake++;                
                
counter 0;
                var 
mc:MovieClip;
                
mc = new snowflakes();
                
mc.name "flake_"+flake;
                
e.target.addChild(mc);
                var 
current_flake:Number Math.round(Math.random()*2) + 1;
                
mc.gotoAndStop(current_flake);
                var 
rand_depth:Number Math.round(Math.random()*4)+1;
                var 
scale:Number Math.round((100*rand_depth)/5);
                
scale /= 100;
                var 
speed:Number rand_depth;
                
speed *= 6;
                var 
color_id:Number Math.round(Math.random()*2);
                var 
alpha_min:Number 0.1;
                var 
alpha_max:Number 0.5;
                
//0 and 1 is white, 2 is black
                
if (color_id == 2) {
                    
alpha_min 0.4;
                    
alpha_max 0.7;
                }
//end if
                
var flake_alpha:Number Math.random()*(alpha_max-alpha_min);
                var 
init_x = -(range/2) + Math.round(Math.random()*stage.stageWidth);
                
mc.alpha flake_alpha;                
                
mc.init_x;
                var 
init_y = -(mc.height);
                
mc.init_y;
                
trace(stage.stageHeight+mc.height);
                
mc.scaleX scale;
                
mc.scaleY scale;
                
mc.addEventListener("click",giveMyName);
                var 
tw:Tween = new Tween(mc,"y",Regular.easeInOut,init_y,(stage.stageHeight+mc.height),speed,true);
                
tw.addEventListener("motionFinish",flakedie);
                function 
flakedie():void{
                    
removeFlake(mc);
                };
            } else {
                
counter++;
            }
        };        
        
        private function 
giveMyName(e:Event){
            
trace(e.target.name);
        };
        
        private function 
removeFlake(mc:MovieClip):void{            
            
trace(mc.name);
            
this.removeChild(mc);            
        }

        
    };
//end class

Grazie per l'aiuto