Advertisement
terorama

Flash / Test Game

Apr 18th, 2013
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. //---------------------------------------------------------------
  3. //                    ZMain.as
  4. //---------------------------------------------------------------
  5. package  {
  6.    
  7.     import flash.display.MovieClip;
  8.     import flash.events.*;
  9.    
  10.     import flash.utils.setTimeout;
  11.     import flash.utils.Timer;
  12.     import flash.ui.Mouse;
  13.    
  14.  
  15.     //----------------------------------------
  16.     public class ZMain extends MovieClip {
  17.        
  18.         //-------------------------------
  19.         public const SPLIT_LINE:Number=440;
  20.         public const NUM_FLOWERS:Number = 15;
  21.        
  22.         public var _hlp : Helper;
  23.         public var _dbg : ZDebug;
  24.         public var _fact : elFactory;
  25.        
  26.         public var _Timer, _Timer4 : Timer;
  27.        
  28.         public var started = false;
  29.         public var flowersDisperse = false;
  30.         public var flowersFar=false;
  31.         public var score:int =0;
  32.        
  33.         //-------------------------------
  34.         public function ZMain() {
  35.            
  36.             _hlp = new Helper();
  37.             _fact = new elFactory(this);
  38.            
  39.            
  40.             addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
  41.             stage.addEventListener("evStop", zstop);
  42.             stage.addEventListener("evRestart",restart);
  43.             stage.addEventListener("startClick", restart);
  44.  
  45.         }
  46.         //-------------------------------
  47.         private function mk_bg() {
  48.            
  49.             _hlp._layer_picture_bg = _fact.mkEl('bg');
  50.             _hlp._layer_treemask = _fact.mkEl('treemask');
  51.            
  52.             addChild(_hlp._layer_picture_bg);
  53.             addChild(_hlp._layer_treemask);
  54.            
  55.             var zpnl = new ZControlPanel(this);
  56.             _hlp._layer_control_panel = zpnl.add_panel();
  57.             addChild(_hlp._layer_control_panel);
  58.            
  59.             var zscore = new ZScoreBoard(this);
  60.             _hlp._layer_score_board = zscore.add_panel();
  61.             addChild(_hlp._layer_score_board);
  62.         }
  63.         //-------------------------------
  64.         private function onAddedToStage(e:Event):void {
  65.            
  66.             mk_bg();
  67.             var zspl = new ZSplashScreen(stage);
  68.            
  69.             _hlp._layer_splash_screen = zspl.add_splashScreen();
  70.            
  71.             //addChild(_hlp._layer_splash_screen);
  72.            
  73.             _dbg = new ZDebug(this);
  74.             //_hlp._layer_debugbox = _dbg.add_debugbox();
  75.             //addChild(_hlp._layer_debugbox);
  76.            
  77.             restart(null);
  78.            
  79.         }
  80.  
  81.         //-------------------------------
  82.         private function restart(e:Event) {
  83.             if (started)
  84.                zstop(null);
  85.                
  86.              zstart(null);
  87.         }
  88.         //-------------------------------
  89.         private function zstop(e:Event) {
  90.            
  91.             _Timer.stop();
  92.             _Timer4.stop();
  93.             _Timer=null;
  94.             _Timer4=null;
  95.            
  96.             stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouse_Move);
  97.             stage.removeEventListener(MouseEvent.MOUSE_DOWN, onMouse_Down);
  98.             stage.removeEventListener(MouseEvent.MOUSE_UP, onMouse_Up);
  99.             stage.removeEventListener("evPanelOver", onPanelOver);
  100.             stage.removeEventListener("evPanelOut", onPanelOut);
  101.            
  102.             _hlp._deleteAllFlowers();
  103.             _hlp._deleteAllClouds();
  104.             _hlp._deleteAllBirds();
  105.             _hlp._deleteAllDynEls();
  106.            
  107.             started =false;
  108.         }
  109.         //-------------------------------
  110.         private function zstart(e:Event) {
  111.            
  112.             //removeChild(_layer_splash_screen);
  113.             started = true;
  114.             _setScore(0);
  115.            
  116.             Mouse.hide();
  117.            
  118.             stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouse_Move);
  119.             stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouse_Down);
  120.             stage.addEventListener(MouseEvent.MOUSE_UP, onMouse_Up);
  121.             stage.addEventListener("evPanelOver", onPanelOver);
  122.             stage.addEventListener("evPanelOut", onPanelOut);
  123.            
  124.             add_flowers();
  125.            
  126.             add_Cloud(null);
  127.             _Timer = new Timer(7000);
  128.             _Timer.addEventListener(TimerEvent.TIMER, add_Cloud);
  129.             _Timer.start();
  130.            
  131.             _Timer4 = new Timer(4000);
  132.             _Timer4.addEventListener(TimerEvent.TIMER, add_Bird);
  133.             _Timer4.start();
  134.            
  135.         }
  136.        
  137.         //-------------------------------
  138.         private function add_Cloud(e:Event) {
  139.            
  140.             var _cloud = _fact.mkEl('cloud',_hlp._clouds);
  141.             if (_cloud.scaleX<0.7)
  142.                addChildAt(_cloud, _hlp._getFlowerIndex());
  143.             else
  144.                addChild(_cloud);
  145.         }
  146.        
  147.         //-------------------------------
  148.         private function add_Bird(e:Event) {
  149.            
  150.             var _bird = _fact.mkEl('bird',_hlp._birds);
  151.                        
  152.             if (_bird.scaleX<0.7)
  153.                addChildAt(_bird, _hlp._getFlowerIndex());
  154.             else
  155.                addChild(_bird);
  156.            
  157.         }
  158.        
  159.         //-------------------------------
  160.         private function onPanelOver(e:Event) {
  161.            
  162.             flowersDisperse = true;
  163.            
  164.             _hlp._parts[0]._targ.x=stage.stageWidth/3;
  165.             _hlp._parts[0]._targ.y=stage.stageHeight/2;
  166.         }
  167.         //-------------------------------
  168.         private function onPanelOut(e:Event) {
  169.            
  170.             flowersDisperse = false;
  171.         }
  172.        
  173.         //-------------------------------
  174.         private function onMouse_Down(e:MouseEvent):void {
  175.            
  176.             if (flowersFar)
  177.                return;
  178.                
  179.             _hlp.mouse_pressed=true;
  180.         }
  181.         //-------------------------------
  182.         private function onMouse_Up(e:MouseEvent):void {
  183.             _hlp.mouse_pressed = false;
  184.         }
  185.         //-------------------------------
  186.         private function onMouse_Move(e:MouseEvent):void {
  187.            
  188.             if (!flowersDisperse) {
  189.                 _hlp._parts[0]._targ.x=mouseX;
  190.                 _hlp._parts[0]._targ.y=mouseY;
  191.             }
  192.             flowersFar = false;
  193.            
  194.             if (mouseY<SPLIT_LINE-200) {
  195.                 flowersFar = true;
  196.                 _hlp._parts[0].scaleX = _hlp._parts[0].scaleY = mouseY/(SPLIT_LINE-200)/4;
  197.                
  198.             } else {
  199.                 _hlp._parts[0].scaleX = _hlp._parts[0].scaleY =1;
  200.                
  201.             }
  202.         }
  203.        
  204.         //-------------------------------
  205.         private function add_flowers() {
  206.            
  207.             for (var i:Number = 0; i< NUM_FLOWERS; i++) {
  208.                
  209.                 var flower = _fact.mkEl('flower',_hlp._parts);
  210.                
  211.                 if (i>0) {
  212.                     flower._targEl = _hlp._parts[_hlp._parts.length-2];
  213.                 }
  214.                
  215.                 flower.alpha=(NUM_FLOWERS-i/2)/NUM_FLOWERS;
  216.                 flower._velMod = 200;//(NUM_FLOWERS-i/6)*10;
  217.                
  218.                 if (i==NUM_FLOWERS-1)
  219.                    flower._fireMode = true;
  220.                
  221.                 addChild(flower);
  222.  
  223.             }
  224.            
  225.         }
  226.     //-------------------------------
  227.        public function _setScore(num) {
  228.            
  229.            score = num;
  230.            stage.dispatchEvent(new Event("evUpdateScore",true,false));
  231.        }
  232.        //-------------------------------
  233.        public function _addScore(num) {
  234.            
  235.            score +=num;
  236.            stage.dispatchEvent(new Event("evUpdateScore",true,false));
  237.        }
  238.        
  239.     }
  240.  
  241. }
  242.  
  243. import flash.display.MovieClip;
  244.  
  245. //----------------------------------------------
  246. //           Elements Factory
  247. //----------------------------------------------
  248. class elFactory extends MovieClip{
  249.    
  250.     import flash.net.URLRequest;
  251.     import flash.display.Loader;
  252.    
  253.     public var _parent:MovieClip;
  254.     //-----------------------
  255.     public function elFactory(_inparent) {
  256.        
  257.         _parent = _inparent;
  258.     }
  259.    
  260.     //-----------------------
  261.     public function mkEl(elname:String, arr:Array=null) {
  262.        
  263.         var el;
  264.         switch (elname) {
  265.             case 'flower':   el = getFlower();break;
  266.             case 'cloud':    el = getCloud();break;
  267.             case 'bird':     el = getBird();break;
  268.             case 'bg':       el = getBg();break;
  269.             case 'treemask': el = getTreeMask();break;
  270.         }
  271.         if (arr!=null)
  272.            arr.push(el);
  273.            
  274.          return el;
  275.     }
  276.     //-----------------------
  277.     function getFlower() {
  278.        
  279.         var flower:zFlower = new zFlower(ZMain(_parent));
  280.                
  281.                 flower.x = Math.random()*_parent.stage.stageWidth;
  282.                 flower.y = Math.random()*_parent.stage.stageHeight;
  283.                
  284.                 return flower;
  285.     }
  286.     //-----------------------
  287.     function getCloud() {
  288.        
  289.         var _cloud = new mvCloud(_parent);
  290.             _cloud.x=  _parent.stage.stageWidth+50;
  291.             _cloud.y= Math.ceil(Math.random()* 300);
  292.             _cloud.scaleX = _cloud.scaleY = Math.random()*0.4+0.5;
  293.             _cloud.alpha = _cloud.scaleX;
  294.            
  295.             return _cloud;
  296.     }
  297.     //-----------------------
  298.     function getBird() {
  299.        
  300.             var _bird = new mvBird(_parent);
  301.             _bird.x=  _parent.stage.stageWidth+50;
  302.             _bird.y= Math.ceil(Math.random()* 250);
  303.             _bird.scaleX = _bird.scaleY = Math.random()*0.8+0.4;
  304.             _bird.alpha =_bird.scaleX<1 ?  _bird.scaleX : 1;
  305.            
  306.             return _bird;
  307.     }
  308.     //-----------------------
  309.     function getBg() {
  310.        
  311.             var picClip:Loader = new Loader();
  312.             var picUrl:URLRequest = new URLRequest('field.jpg');
  313.             picClip.load(picUrl);      
  314.             return picClip;
  315.     }
  316.     //-----------------------
  317.     function getTreeMask() {
  318.        
  319.             var treeMask:MovieClip = new MovieClip();
  320.             treeMask.graphics.drawRect(0,0,170,80);
  321.             treeMask.width=170;
  322.             treeMask.height=80;
  323.             treeMask.x=620;
  324.             treeMask.y=310;
  325.            
  326.             return treeMask;
  327.     }
  328.    
  329. }
  330.  
  331. //----------------------------------------------
  332. //        Helper
  333. //----------------------------------------------
  334. class Helper {
  335.    
  336.         import flash.display.Loader;
  337.        
  338.        
  339.         public var _parts:Array=[];
  340.         public var _clouds:Array=[];
  341.         public var _birds:Array=[];
  342.        
  343.         public var _alldynels:Array=[];
  344.        
  345.         public var _layer_splash_screen: MovieClip;
  346.         public var _layer_picture_bg : Loader;
  347.         public var _layer_treemask : MovieClip;
  348.         public var _layer_debugbox : MovieClip;
  349.         public var _layer_control_panel : MovieClip;
  350.         public var _layer_score_board : MovieClip;
  351.        
  352.         //---------------------
  353.         public var mouse_pressed:Boolean =false;
  354.        
  355.        //--------------------------
  356.        public function Helper () {
  357.          
  358.        }
  359.      
  360.        //-------------------------------
  361.        public function _hitTestTree(obj):Boolean {
  362.            
  363.            return obj.hitTestObject(_layer_treemask);
  364.        }
  365.      
  366.        //-------------------------------
  367.        public function _hitTestFlower(obj) {
  368.            
  369.             if (obj.hitTestObject(_parts[0]))
  370.                return true;
  371.                
  372.             return false;
  373.        }
  374.        
  375.        //-------------------------------
  376.        public function _hitTestCloud(obj) {
  377.            
  378.             var cloud: mvCloud;
  379.            
  380.             for (var i:Number=0; i<_clouds.length; i++) {
  381.    
  382.                    if ((_clouds[i] is MovieClip)===false)
  383.                       continue;
  384.  
  385.                    cloud = _clouds[i];  
  386.                    if (obj.hitTestObject(cloud)) {
  387.                       return cloud;
  388.                    }
  389.             }
  390.             return false;
  391.        }
  392.        
  393.        //-------------------------------
  394.        public function _hitTestBird(obj) {
  395.            
  396.             var bird: mvBird;
  397.            
  398.             for (var i:Number=0; i<_birds.length; i++) {
  399.    
  400.                    if ((_birds[i] is MovieClip)===false)
  401.                       continue;
  402.  
  403.                    bird = _birds[i];  
  404.                    if (obj.hitTestObject(bird)) {
  405.                       return bird;
  406.                    }
  407.             }
  408.             return false;
  409.        }
  410.        //-------------------------------
  411.         public function _deleteAllFlowers() {
  412.            
  413.             while (_parts.length>0)
  414.                _destroyFlower(0);
  415.         }
  416.        //-------------------------------
  417.         public function _deleteAllClouds() {
  418.            
  419.             while (_clouds.length>0)
  420.                _destroyCloud(0);
  421.         }
  422.        //-------------------------------
  423.         public function _deleteAllBirds() {
  424.            
  425.             while (_birds.length>0)
  426.                _destroyBird(0);
  427.         }      
  428.        //-------------------------------
  429.         public function _deleteAllDynEls() {
  430.            
  431.             while (_alldynels.length>0)
  432.                _alldynels[0]._final();
  433.         }              
  434.        //-------------------------------
  435.         public function _destroyFlower(ind:int) {
  436.            
  437.             var flower =_parts[ind];
  438.             _removeFlower(flower);
  439.             flower._final();
  440.         }
  441.         //-------------------------------
  442.         public function _destroyCloud(ind:int) {
  443.            
  444.             var cloud = _clouds[ind];
  445.             _removeCloud(cloud)
  446.             cloud._final();
  447.         }
  448.         //-------------------------------
  449.         public function _destroyBird(ind:int) {
  450.            
  451.             var bird = _birds[ind];
  452.             _removeBird(bird);
  453.             bird._final();
  454.         }
  455.        
  456.         //-------------------------------
  457.         public function _removeFlower(flower) {
  458.            
  459.            for (var i:Number=_parts.length-1; i>=0; i--) {
  460.                 if (_parts[i]==flower) {
  461.                     _parts.splice(i,1);
  462.                     break;
  463.                 }
  464.             }
  465.         }
  466.        //-------------------------------
  467.         public function _removeCloud(cloud) {
  468.            
  469.            for (var i:Number=_clouds.length-1; i>=0; i--) {
  470.                 if (_clouds[i]==cloud) {
  471.                     _clouds.splice(i,1);
  472.                     break;
  473.                 }
  474.             }
  475.         }
  476.         //-------------------------------
  477.         public function _removeBird(bird) {
  478.            
  479.            for (var i:Number=_birds.length-1; i>=0; i--) {
  480.                 if (_birds[i]==bird) {
  481.                     _birds.splice(i,1);
  482.                     break;
  483.                 }
  484.             }
  485.         }
  486.         //-------------------------------
  487.         public function _removeDynEl(el) {
  488.            
  489.            for (var i:Number=_alldynels.length-1; i>=0; i--) {
  490.                 if (_alldynels[i]==el) {
  491.                     _alldynels.splice(i,1);
  492.                     break;
  493.                 }
  494.             }
  495.         }
  496.  
  497.        
  498.        //-------------------------------
  499.         public function _getFlowerIndex(upper=false) {
  500.            
  501.             var flo:zFlower;
  502.             if (upper)
  503.                flo = _parts[_parts.length-1];
  504.             else
  505.                flo = _parts[0];
  506.                
  507.             var ind:Number = flo.parent.getChildIndex(flo);
  508.             return ind;
  509.         }
  510.        
  511.    }
  512.    
  513. //----------------------------------------------
  514. //----------------------------------------------
  515. class ZScoreBoard extends MovieClip {
  516.    
  517.     import flash.events.*;
  518.     import fl.transitions.Tween;
  519.     import fl.transitions.easing.Strong;
  520.    
  521.     public const VIS_ALPHA:Number = 0.6;
  522.     public const ACTIVE_ALPHA:Number = 0.9;
  523.    
  524.     private var _parent : ZMain;
  525.     private var active:Boolean = false;
  526.     private var panel:mvScore;
  527.    
  528.     //------------------------------------
  529.     public function ZScoreBoard(_inparent) {
  530.        
  531.         _parent = _inparent;
  532.         _parent.stage.addEventListener("evUpdateScore", updScore);
  533.     }
  534.    
  535.     //------------------------------------
  536.     public function add_panel() {
  537.        
  538.         panel = new mvScore();
  539.        
  540.         panel.x = _parent.stage.stageWidth-400;
  541.         panel.y = 30;
  542.         panel.alpha = VIS_ALPHA;
  543.        
  544.        
  545.         return panel;
  546.     }
  547.     //------------------------------------
  548.     public function updScore(e:Event) {
  549.        
  550.         panel.txScore.text ='your current score: '+_parent.score.toString();
  551.     }
  552.    
  553. }
  554.    
  555. //----------------------------------------------
  556. //         Control Panel
  557. //----------------------------------------------
  558. class ZControlPanel extends MovieClip {
  559.    
  560.     import flash.events.*;
  561.     import fl.transitions.Tween;
  562.     import fl.transitions.easing.Strong;
  563.     import flash.ui.Mouse;
  564.     import fl.controls.Label;
  565.     import flash.text.TextField;
  566.     import flash.text.TextFormat;
  567.    
  568.     public const VIS_ALPHA:Number = 0.2;
  569.     public const ACTIVE_ALPHA:Number = 0.8;
  570.    
  571.     public var _parent:ZMain;
  572.     public var active=false;
  573.     public var _objOn:MovieClip=null;
  574.    
  575.     public function ZControlPanel(_inparent) {
  576.         _parent = _inparent;
  577.     }
  578.    
  579.     //------------------------------------
  580.     public function add_panel() {
  581.        
  582.         var panel: mvCntPanel = new mvCntPanel();
  583.        
  584.  
  585.         panel.alpha = VIS_ALPHA;
  586.        
  587.         panel.addEventListener(Event.ADDED_TO_STAGE, onAdded);
  588.         panel.addEventListener(MouseEvent.MOUSE_OVER, onMouse_Over);
  589.         panel.addEventListener(MouseEvent.MOUSE_OUT, onMouse_Out);
  590.         panel.btStop.addEventListener(MouseEvent.CLICK, onStop);
  591.         panel.btRestart.addEventListener(MouseEvent.CLICK, onRestart);
  592.        
  593.         var format = new TextFormat();
  594.         format.bold=true;
  595.                
  596.         for (var i:int=0; i<panel.numChildren; i++) {
  597.             var zel = panel.getChildAt(i);
  598.             if (zel is Label) {
  599.                 //Label(zel).textField.setTextFormat(format);
  600.                 Label(zel).htmlText ='<b>'+Label(zel).text+'</b>';
  601.                
  602.             }
  603.         }
  604.        
  605.         return panel;
  606.     }
  607.     //------------------------------------
  608.     public function onAdded(e:Event) {
  609.        
  610.         e.currentTarget.x = _parent.stage.stageWidth-e.currentTarget.width/2;
  611.         e.currentTarget.y = _parent.stage.stageHeight-e.currentTarget.height/2;
  612.        
  613.     }
  614.     //------------------------------------
  615.     private function onStop(e:Event) {
  616.         _parent.stage.dispatchEvent(new Event("evStop",true,false));
  617.     }
  618.    
  619.     //------------------------------------
  620.     private function onRestart(e:Event) {
  621.         _parent.stage.dispatchEvent(new Event("evRestart",true,false));
  622.     }
  623.    
  624.     //------------------------------------
  625.     public function onMouse_Over(e:MouseEvent) {
  626.        
  627.         if (active)
  628.            return;
  629.  
  630.         active = true;
  631.         if (_objOn==null)
  632.            _objOn = MovieClip(_parent.getChildAt(_parent.getChildIndex(
  633.                                                 MovieClip(e.currentTarget))-1));
  634.  
  635.         _parent.stage.dispatchEvent(new Event("evPanelOver",true,false));
  636.         Mouse.show();
  637.        
  638.         var zTween:Tween = new Tween(e.currentTarget, 'alpha', Strong.easeOut,
  639.                                            VIS_ALPHA,ACTIVE_ALPHA, 0.5, true);
  640.        
  641.     }
  642.     //------------------------------------
  643.     public function onMouse_Out(e:MouseEvent) {
  644.        
  645.        
  646.         if (!active)
  647.            return;
  648.            
  649.         if (e.currentTarget.contains(e.relatedObject))
  650.            return;
  651.            
  652.          active =false;  
  653.          
  654.          _parent.stage.dispatchEvent(new Event("evPanelOut",true,false));
  655.          Mouse.hide();
  656.          
  657.          var zTween:Tween = new Tween(e.currentTarget, 'alpha', Strong.easeOut,
  658.                                            ACTIVE_ALPHA, VIS_ALPHA, 0.5, true);
  659.     }
  660. }
  661.  
  662. //----------------------------------------------
  663. //           Splash Screen
  664. //----------------------------------------------
  665. class ZSplashScreen extends MovieClip {
  666.    
  667.     import flash.events.*;
  668.    
  669.     import flash.geom.Matrix;
  670.     import flash.display.GradientType;
  671.     import flash.display.InterpolationMethod;
  672.     import flash.display.SpreadMethod;
  673.     import flash.display.BlendMode;
  674.    
  675.     public var _stage;
  676.    
  677.     public function ZSplashScreen(_instage) {
  678.         _stage = _instage;
  679.        
  680.     }
  681.     //----------------------------
  682.     public function add_splashScreen()
  683.     {
  684.             var w = _stage.stageWidth;
  685.             var h = _stage.stageHeight;
  686.            
  687.             var gshape:MovieClip = new MovieClip();
  688.             var gmatrix = new Matrix();
  689.            
  690.             var gtype = GradientType.LINEAR;
  691.             var gspread = SpreadMethod.PAD;
  692.             var ginterpolation = InterpolationMethod.LINEAR_RGB;
  693.             var gcolours = [0xf0eeff, 0xaaff99];
  694.             var galphas = [1,1];
  695.             var gratios = [0,255];
  696.            
  697.             gmatrix.createGradientBox(w,h, Math.PI/2);
  698.            
  699.             gshape.graphics.clear();
  700.            
  701.            
  702.             gshape.graphics.beginGradientFill(gtype, gcolours, galphas,
  703.                                               gratios, gmatrix, gspread, ginterpolation);
  704.            
  705.             gshape.graphics.drawRect(0,0, w,h);
  706.             gshape.graphics.endFill();
  707.            
  708.             gshape.x=0;
  709.             gshape.y=0;
  710.            
  711.             gshape.blendMode=BlendMode.HARDLIGHT;
  712.            
  713.             var zPanel = new cntPanel();
  714.             zPanel.bt_start.addEventListener(MouseEvent.CLICK, send_start);
  715.             zPanel.x = Math.floor(w/2);
  716.             zPanel.y = Math.floor(h/2);
  717.             gshape.addChild(zPanel);
  718.            
  719.            
  720.             return gshape;
  721.     }
  722.     //--------------------------------
  723.     private function send_start(e:MouseEvent) {
  724.         _stage.dispatchEvent(new Event("startClick",true,false));
  725.     }
  726. }
  727.    
  728.    
  729. //----------------------------------------------
  730. //           Debug window
  731. //----------------------------------------------
  732. class ZDebug extends MovieClip {
  733.    
  734.     import flash.events.*;
  735.    
  736.     import fl.transitions.Tween;
  737.     import fl.transitions.easing.Strong;
  738.    
  739.     import fl.controls.TextInput;
  740.     import fl.controls.ScrollPolicy;
  741.     import fl.controls.TextArea;
  742.    
  743.     import flash.text.TextFormat;
  744.     import flash.text.TextField;
  745.     import flash.text.StyleSheet;
  746.    
  747.     import fl.controls.Button;
  748.    
  749.     public const VIS_TRANS:Number=0.4;
  750.    
  751.     public var _parent:MovieClip;
  752.     public var _dbg_box:MovieClip;
  753.     public var _sysdate:Date;
  754.    
  755.    
  756.     public var _ElementOn: MovieClip=null;
  757.    
  758.     public function ZDebug(_inparent) {
  759.        
  760.         _parent = _inparent;
  761.     }
  762.    
  763.     //-------------------------------
  764.         public function wr(tx, targ) {
  765.            
  766.            
  767.             if (targ<3) {
  768.                 TextField(_dbg_box.getChildAt(targ)).htmlText = tx;
  769.             } else if (targ<6) {
  770.                 TextInput(_dbg_box.getChildAt(targ)).text=tx;
  771.             } else {
  772.                 _dbg_box.ztext.text = tx+String.fromCharCode(13)+_dbg_box.ztext.text;
  773.             }
  774.         }
  775.         //-------------------------------
  776.         private function z_mouseInfo() {
  777.            
  778.                 _sysdate = new Date();
  779.                 var tm:String = _sysdate.getDate()+'.'+ _sysdate.getMonth()+'.'+
  780.                 _sysdate.getFullYear()+' '+_sysdate.getHours()+':'+
  781.                 _sysdate.getMinutes()+':'+_sysdate.getSeconds();
  782.                
  783.                 wr('mouseTriggered '+tm,0);
  784.                 wr('mouseX='+mouseX,1);
  785.                 wr('mouseY='+mouseY,2);
  786.         }
  787.         //-------------------------------
  788.         public function add_debugbox() {
  789.            
  790.             _dbg_box = new MovieClip();
  791.            
  792.             _dbg_box.inactive=true;
  793.             _dbg_box.name='zdebugbox_inst';
  794.            
  795.             _dbg_box.graphics.beginFill(0xeeeeee);
  796.             _dbg_box.graphics.lineStyle(1,0x888888);
  797.             _dbg_box.graphics.drawRect(0,0, 300, 500);
  798.             _dbg_box.graphics.endFill();
  799.             _dbg_box.alpha=VIS_TRANS;
  800.            
  801.            
  802.             _dbg_box.addEventListener(MouseEvent.MOUSE_OVER, dbgMouse_Over);
  803.             _dbg_box.addEventListener(MouseEvent.MOUSE_OUT, dbgMouse_Out);
  804.  
  805.             var zfld:TextField;
  806.             var zinp:TextInput;
  807.             //--------------------
  808.             var format:TextFormat = new TextFormat();
  809.             format.align = 'right';
  810.             format.bold = true;
  811.            
  812.             var sheet:StyleSheet = new StyleSheet();
  813.             var st:Object = new Object();
  814.             st.color='#880000';
  815.             sheet.setStyle('body', st)
  816.            
  817.             //--------------------
  818.             for (var i:Number=0; i<3; i++) {
  819.                 zfld = new TextField();
  820.                 zfld.width=290;
  821.                 zfld.height=20;
  822.                 zfld.styleSheet = sheet;
  823.                 zfld.x=5;
  824.                 zfld.y=5+i*25;
  825.                
  826.                 _dbg_box.addChild(zfld);
  827.                
  828.             }
  829.             //--------------------
  830.             for (i=3; i<6; i++) {
  831.                 zinp = new TextInput();
  832.                 zinp.setSize(290, 20);
  833.                 zinp.setStyle("textFormat", format);
  834.                
  835.                 zinp.graphics.beginFill(0xeeeeee);
  836.                 zinp.graphics.lineStyle(1,0x888888);
  837.                 zinp.graphics.drawRect(0,0, zinp.width, zinp.height);
  838.                 zinp.graphics.endFill();
  839.                 zinp.move(5,5+i*25);
  840.                
  841.                 _dbg_box.addChild(zinp);
  842.                
  843.             }
  844.            
  845.             var ztext:TextArea = new TextArea();
  846.             ztext.verticalScrollPolicy = ScrollPolicy.ON;
  847.             ztext.setSize(290, 280);
  848.             ztext.move(5,5+7*25);
  849.             _dbg_box.ztext = ztext;
  850.             _dbg_box.addChild(ztext);
  851.            
  852.             /*var btIn:Button = new Button();
  853.             //btIn.emphasized = true;
  854.             btIn.width = 30;
  855.             btIn.height = 30;
  856.             btIn.label = 'ftg';
  857.             _dbg_box.addChild(btIn);
  858.             //btIn.move(_dbg_box.width-35, _dbg_box.height-35);
  859.             //_parent.addChild(btIn);
  860.             //btIn.name = 'fadeOutButton';
  861.             */
  862.            
  863.             var btIn = new mvFadeIn();
  864.             btIn.name='fadeInButton';
  865.            
  866.             _dbg_box.addChild(btIn);
  867.             btIn.x = _dbg_box.width-btIn.width-5;
  868.             btIn.y = _dbg_box.height-btIn.height-5;
  869.            
  870.            
  871.             _dbg_box.addEventListener(Event.ADDED_TO_STAGE, onAdd);
  872.             return _dbg_box;
  873.            
  874.            
  875.         }
  876.         //-------------------------------
  877.         private function onAdd(e:Event) {
  878.             e.target.addEventListener(Event.ENTER_FRAME, onEnter_Frame);
  879.         }      
  880.         //-------------------------------
  881.         private function onEnter_Frame(e:Event) {
  882.            
  883.             wr('ch: '+_parent.numChildren,0);
  884.             wr('chst: '+_parent.stage.numChildren,1);
  885.         }
  886.         //-------------------------------
  887.         private function dbgMouse_Over(e:MouseEvent):void {
  888.            
  889.             if (_dbg_box.inactive==false)
  890.                return;
  891.              
  892.             if (e.relatedObject==null)
  893.                return;
  894.                
  895.             if (e.relatedObject.name!='fadeInButton')
  896.                return;
  897.                
  898.             if (_ElementOn==null) {
  899.                 _ElementOn = MovieClip( _parent.getChildAt(_parent.getChildIndex(_dbg_box)-1));
  900.             }
  901.                
  902.             _parent.setChildIndex(_dbg_box, _parent.numChildren - 1);
  903.             var dbgTween:Tween = new Tween(_dbg_box, 'alpha', Strong.easeOut,
  904.                                            VIS_TRANS,1, 0.5, true);
  905.             _dbg_box.inactive=false;
  906.         }
  907.         //-------------------------------
  908.         private function dbgMouse_Out(e:MouseEvent):void {
  909.            
  910.            
  911.             /*if (e.relatedObject!==null) {
  912.                wr(e.relatedObject.name, 5);
  913.                if (e.relatedObject.name=='zdebugbox_inst')
  914.                   return;
  915.                  
  916.                if (e.relatedObject.parent.name=='zdebugbox_inst')
  917.                   return;
  918.             }*/
  919.             if (_dbg_box.inactive==true)
  920.                return;
  921.            
  922.             if (_dbg_box.hitTestPoint(mouseX,mouseY)==true)
  923.                return;
  924.                
  925.             var dbgTween:Tween = new Tween(_dbg_box, 'alpha', Strong.easeOut,
  926.                                            1, VIS_TRANS, 0.5, true);
  927.             _parent.setChildIndex(_dbg_box,_parent.getChildIndex(_ElementOn)+1);
  928.             _dbg_box.inactive=true;
  929.         }
  930. }
  931.  
  932. //---------------------------------------------------------------
  933. //                    zBase.as
  934. //---------------------------------------------------------------
  935. package  {
  936.     import flash.display.MovieClip;
  937.     import flash.events.*;
  938.    
  939.     public class zBase extends MovieClip{
  940.  
  941.         public var _parent:ZMain;
  942.        
  943.         public var speedX:Number=0;
  944.         public var speedY:Number=0;
  945.         public var speedSX: Number=1;
  946.         public var speedSY: Number=1;
  947.         public var speedSPX: Number=0;
  948.         public var speedSPY: Number=0;
  949.         public var rotSpeed:Number=0;
  950.         public var alphaSpeed:Number=0;
  951.        
  952.         public var removing:Boolean = false;
  953.  
  954.         public function zBase(_inparent:ZMain) {
  955.            
  956.             _parent = _inparent;
  957.             _parent._hlp._alldynels.push(this);
  958.            
  959.             addEventListener(Event.ADDED_TO_STAGE, onAdded);
  960.             addEventListener(Event.ENTER_FRAME, onEnter_frame);
  961.         }
  962.         //---------------------------------
  963.         public function onAdded(e:Event) {
  964.      
  965.         }
  966.         //---------------------------------
  967.         public function onEnter_frame(e:Event) {
  968.            
  969.             updSpeed();
  970.            
  971.            
  972.             x+=speedX;
  973.             y+=speedY;
  974.             rotation+=rotSpeed;
  975.             alpha+=alphaSpeed;
  976.            
  977.             scaleX *= speedSX;
  978.             scaleY *= speedSY;
  979.             scaleX += speedSPX;
  980.             scaleY += speedSPY;
  981.            
  982.             checkEnv();
  983.         }
  984.         //---------------------------------
  985.         public function _final() {
  986.            
  987.             if (removing)
  988.                return;
  989.                
  990.             removing = true;
  991.             removeEventListener(Event.ENTER_FRAME, onEnter_frame);
  992.             _parent._hlp._removeDynEl(this);
  993.            
  994.             user_final();
  995.            
  996.             _parent.removeChild(this);
  997.         }
  998.         //---------------------------------
  999.         public function user_final() {
  1000.         }
  1001.         //---------------------------------
  1002.         public function updSpeed() {
  1003.         }
  1004.         //---------------------------------
  1005.         public function checkEnv() {
  1006.         }
  1007.  
  1008.     }
  1009.    
  1010. }
  1011.  
  1012. //---------------------------------------------------------------
  1013. //                    zFlower.as
  1014. //---------------------------------------------------------------
  1015. package  {
  1016.    
  1017.     import flash.display.MovieClip;
  1018.    
  1019.     import flash.geom.ColorTransform;
  1020.     import flash.geom.Point;
  1021.     import flash.events.*;
  1022.     import flash.utils.*;
  1023.    
  1024.  
  1025.     public class zFlower extends zBase {
  1026.        
  1027.         const VELDIV =400;
  1028.        
  1029.        
  1030.         public var _targEl: zFlower=null;
  1031.         public var _targ: Point;
  1032.         public var _velMod:Number;
  1033.         public var _fireMode:Boolean = false;
  1034.         public var _Trace: mvTrace;
  1035.        
  1036.         //----------------------------------
  1037.         public function zFlower(_inparent:ZMain) {
  1038.            
  1039.             super(_inparent);
  1040.            
  1041.             _targ = new Point(x,y);
  1042.             rotSpeed=10;
  1043.             //setTimeout(addTimer, Math.floor(Math.random()*4000));
  1044.  
  1045.         }
  1046.         //----------------------------------
  1047.         private function addTimer() {
  1048.            
  1049.             var _timer = new Timer(50);
  1050.             _timer.addEventListener(TimerEvent.TIMER, appTrace);
  1051.             _timer.start();
  1052.         }
  1053.         //----------------------------------
  1054.         override public function onAdded(e:Event) {
  1055.            
  1056.             var st:Number = Math.ceil(Math.random()*totalFrames);
  1057.             gotoAndPlay(st);
  1058.            
  1059.             if (_fireMode)
  1060.                 addTimer();
  1061.            
  1062.         }
  1063.         //----------------------------------
  1064.         private function appTrace(e:TimerEvent) {
  1065.            
  1066.             if (!_parent._hlp.mouse_pressed)
  1067.                return;
  1068.            
  1069.             _Trace = new mvTrace(_parent);
  1070.             _Trace.x = x;
  1071.             _Trace.y = y;
  1072.             var koef = Math.random()*2+1;
  1073.             _Trace.speedX = speedX*koef;
  1074.             _Trace.speedY = speedY*koef;
  1075.             _parent.addChildAt(_Trace, _parent._hlp._getFlowerIndex(true));
  1076.            
  1077.             var snd = new sndFire();
  1078.             snd.play();
  1079.         }
  1080.         //----------------------------------
  1081.         override public function updSpeed() {
  1082.            
  1083.             if (_targEl!==null) {
  1084.                
  1085.                speedX = (_targEl.x - x )*_velMod/VELDIV;
  1086.                speedY = (_targEl.y - y )*_velMod/VELDIV;
  1087.                
  1088.                speedSPX = speedSPY = (_targEl.scaleX-scaleX)/3;
  1089.  
  1090.             }
  1091.             else {
  1092.                
  1093.                speedX = (_targ.x - x )*_velMod/VELDIV;
  1094.                speedY = (_targ.y - y )*_velMod/VELDIV;
  1095.             }
  1096.            
  1097.         }
  1098.         //----------------------------------
  1099.         override public function checkEnv() {
  1100.            
  1101.             if  (_parent._hlp._hitTestTree(this))
  1102.                 visible=false;
  1103.             else
  1104.                 visible=true;
  1105.                
  1106.            
  1107.         }
  1108.     }
  1109.    
  1110. }
  1111.  
  1112. //---------------------------------------------------------------
  1113. //                    mvTrace.as
  1114. //---------------------------------------------------------------
  1115. package  {
  1116.    
  1117.     import flash.display.MovieClip;
  1118.     import flash.events.*;
  1119.    
  1120.    
  1121.     public class mvTrace extends zBase {
  1122.        
  1123.        
  1124.         public function mvTrace(_inparent) {   
  1125.             super(_inparent);
  1126.            
  1127.             speedSX = speedSY = 1.03;
  1128.             alphaSpeed = -0.01;
  1129.             rotSpeed = -20;
  1130.         }
  1131.        
  1132.         override public function user_final() {
  1133.            
  1134.             var mvf:mvFlash = new mvFlash(_parent);
  1135.             mvf.x = x;
  1136.             mvf.y = y;
  1137.             _parent.addChildAt(mvf, _parent.getChildIndex(this));
  1138.            
  1139.         }
  1140.        
  1141.         override public function checkEnv() {
  1142.             //alpha-=.01;
  1143.            
  1144.             var snd;
  1145.            
  1146.             if (currentFrame==totalFrames) {
  1147.                
  1148.                  snd = new sndExpl();
  1149.                  snd.play();
  1150.                 _final();
  1151.             }
  1152.  
  1153.             if  (_parent._hlp._hitTestTree(this))
  1154.                 visible=false;
  1155.             else
  1156.                 visible=true;
  1157.                
  1158.             if (_parent._hlp._hitTestCloud(this)!=false) {
  1159.                
  1160.                 snd = new sndHitCloud();
  1161.                 snd.play();
  1162.                
  1163.                 _final();
  1164.              }
  1165.            
  1166.            
  1167.             var bird=_parent._hlp._hitTestBird(this)
  1168.             if (bird!=false)
  1169.                bird.birdHit();  
  1170.            
  1171.         }
  1172.     }
  1173.    
  1174. }
  1175.  
  1176. //---------------------------------------------------------------
  1177. //                    mvCloud.as
  1178. //---------------------------------------------------------------
  1179. package  {
  1180.    
  1181.     import flash.display.MovieClip;
  1182.     import flash.events.*;
  1183.     import flash.filters.BlurFilter;
  1184.     import flash.filters.BitmapFilterQuality;
  1185.     import flash.display.Bitmap;
  1186.     import flash.display.BitmapData;
  1187.    
  1188.     import flash.geom.Rectangle;
  1189.     import flash.geom.Matrix;
  1190.     import flash.geom.ColorTransform;
  1191.    
  1192.     public class mvCloud extends zBase {
  1193.        
  1194.        
  1195.         public var _shade:MovieClip;
  1196.        
  1197.         //----------------------------------
  1198.         private function add_shade() {
  1199.            
  1200.             _shade = new MovieClip();
  1201.            
  1202.             var _bm:BitmapData = new BitmapData(width, height, true, 0x000000);
  1203.            
  1204.             var _rect:Rectangle = getRect(this);
  1205.             var _matrix = new Matrix();
  1206.             _matrix.translate(width/2, height/2);
  1207.            
  1208.             //_bm.fillRect(_rect,0xffff00);
  1209.            
  1210.             _bm.draw(this,_matrix,null,null,null); 
  1211.            
  1212.             var _bmp:Bitmap = new Bitmap(_bm);
  1213.             _bmp.x=0;
  1214.             _bmp.y=0;
  1215.             _shade.addChild(_bmp);
  1216.            
  1217.             var cTrans:ColorTransform = _shade.transform.colorTransform;
  1218.             cTrans.color=0x000000;
  1219.             _shade.transform.colorTransform = cTrans;
  1220.             var _blurS:BlurFilter = new BlurFilter(9,9, BitmapFilterQuality.LOW);
  1221.             _shade.filters = [_blurS];
  1222.         }
  1223.         //----------------------------------
  1224.         private function pos_shade() {
  1225.            
  1226.             _shade.x = x-width/2;
  1227.             _shade.y=int(_parent.SPLIT_LINE+(_parent.SPLIT_LINE-y)/2*Math.pow(scaleX,4));
  1228.             _shade.scaleX = scaleX*1.2 ;
  1229.             _shade.scaleY = Math.pow(scaleY,2);
  1230.             _shade.alpha=0.3*scaleX;
  1231.  
  1232.             _parent.addChild(_shade);
  1233.         }
  1234.         //----------------------------------
  1235.         private function add_filters() {
  1236.            
  1237.             var _blur:BlurFilter = new BlurFilter(4,4, BitmapFilterQuality.LOW);
  1238.             var arr:Array = new Array();
  1239.             arr.push(_blur);
  1240.             filters = arr;
  1241.         }
  1242.         //----------------------------------
  1243.         public function mvCloud(_inparent) {
  1244.            
  1245.             super(_inparent);
  1246.            
  1247.             speedX = -1;
  1248.             speedY = 0;
  1249.             add_shade();
  1250.             add_filters();
  1251.         }
  1252.        
  1253.         //----------------------------------
  1254.         override public function onAdded(e:Event) {
  1255.            
  1256.             pos_shade();
  1257.             var st:Number = Math.ceil(Math.random()*totalFrames);
  1258.             gotoAndPlay(st);
  1259.         }
  1260.        
  1261.         //----------------------------------
  1262.         override public function user_final() {
  1263.             _parent.removeChild(_shade);
  1264.             _parent._hlp._removeCloud(this);       
  1265.         }
  1266.         //----------------------------------
  1267.         override public function checkEnv()  {
  1268.            
  1269.             _shade.x = x-width/2;
  1270.            
  1271.             if (x<-200) {
  1272.                 _final();
  1273.             }
  1274.         }
  1275.        
  1276.     }
  1277.    
  1278. }
  1279.  
  1280. //---------------------------------------------------------------
  1281. //                    mvBird.as
  1282. //---------------------------------------------------------------
  1283. package  {
  1284.    
  1285.     import flash.display.MovieClip;
  1286.     import flash.events.*;
  1287.     import flash.filters.BitmapFilterQuality;
  1288.     import flash.filters.GlowFilter;
  1289.     import flash.filters.BlurFilter;
  1290.     import flash.filters.DropShadowFilter;
  1291.     import flash.utils.setTimeout;
  1292.     import flash.utils.Timer;
  1293.  
  1294.     public class mvBird extends zBase {
  1295.        
  1296.        
  1297.         public var _shade:mvBird_shade;
  1298.         public var z_coin:Boolean = false;
  1299.         public var n_coins:int=0;
  1300.        
  1301.         //----------------------------------------
  1302.         private function add_filters() {
  1303.            
  1304.             var red:int = 150;
  1305.             var green:int = 150;
  1306.             var blue:int = 150;
  1307.            
  1308.             var type:int = int(Math.random()*4);
  1309.             switch (type) {
  1310.                 case 1:
  1311.                    red += int(Math.random()*105);
  1312.                    break;
  1313.                    
  1314.                 case 2:
  1315.                    green += int(Math.random()*105);
  1316.                    break;
  1317.                    
  1318.                 case 3:
  1319.                    blue += int(Math.random()*105);
  1320.                    break;
  1321.                    
  1322.                 default:
  1323.                  red += int(Math.random()*105);  
  1324.             }
  1325.  
  1326.             var color:Number = Number("0x" + red.toString(16) +
  1327.                                     green.toString(16) + blue.toString(16));
  1328.  
  1329.            
  1330.  
  1331.             var glowFilter:GlowFilter = new GlowFilter(color, 0.8, 30, 30, 4,
  1332.             BitmapFilterQuality.LOW, true, false);  
  1333.            
  1334.            
  1335.             var _shadow = new DropShadowFilter(3,45, 0x000000,0.7, 4,4, 1,
  1336.                                         BitmapFilterQuality.LOW, true, false);
  1337.  
  1338.             var _blur:BlurFilter = new BlurFilter(1,1, BitmapFilterQuality.LOW);
  1339.            
  1340.             filters = [ /*glowFilter, _blur,*/ _shadow ];
  1341.         }
  1342.        
  1343.         //----------------------------------------
  1344.         public function add_shade() {
  1345.            
  1346.             _shade = new mvBird_shade();
  1347.            
  1348.             var _blurS:BlurFilter = new BlurFilter(9,9, BitmapFilterQuality.LOW);
  1349.             _shade.filters = [_blurS];
  1350.         }
  1351.        
  1352.         //----------------------------------------
  1353.         public function pos_shade() {
  1354.            
  1355.             _shade.x = x-width/2;
  1356.             _shade.y=int(_parent.SPLIT_LINE+(_parent.SPLIT_LINE-y)/2*Math.pow(scaleX,4));
  1357.             _shade.scaleX = scaleX*1.2 ;
  1358.             _shade.scaleY = Math.pow(scaleY,2);
  1359.             _shade.alpha=0.5*scaleX;
  1360.  
  1361.             _parent.addChild(_shade);
  1362.         }
  1363.        
  1364.         //----------------------------------------
  1365.         public function mvBird(_inparent) {
  1366.            
  1367.             super(_inparent);
  1368.            
  1369.             speedX = -1*Math.random()*6-1;
  1370.             speedY = 0;
  1371.             rotSpeed = 0;
  1372.            
  1373.             add_filters();
  1374.             add_shade();
  1375.         }
  1376.        
  1377.         //----------------------------------
  1378.         override public function onAdded(e:Event) {
  1379.            
  1380.             pos_shade();
  1381.            
  1382.             var st:Number = Math.ceil(Math.random()*29);
  1383.             gotoAndPlay(st);
  1384.         }
  1385.        
  1386.         //----------------------------------
  1387.         public function killed() {
  1388.             speedY =4;
  1389.             rotSpeed=-5;
  1390.            
  1391.             var snd = new sndScream();
  1392.             snd.play();
  1393.         }
  1394.         //----------------------------------
  1395.         public function birdHit() {
  1396.            
  1397.             if (speedY>=4)
  1398.                return;
  1399.                
  1400.             rotSpeed+=3;
  1401.             if (currentFrame>30)
  1402.                return;
  1403.                
  1404.             gotoAndPlay(31);
  1405.            
  1406.             var snd = new sndShot();
  1407.             snd.play();
  1408.         }
  1409.         //----------------------------------
  1410.         override public function user_final() {
  1411.             _parent.removeChild(_shade);
  1412.             _parent._hlp._removeBird(this);            
  1413.         }
  1414.         //----------------------------------
  1415.         private function appTrace() {
  1416.            
  1417.             var _coin = new mvCoin(_parent);
  1418.             _coin.x = x;
  1419.             _coin.y = y;
  1420.             _coin.scaleX=_coin.scaleY = scaleX;
  1421.             _coin.speedX = Math.random()*4;
  1422.             _coin.speedY = 4;
  1423.             _parent.addChildAt(_coin, _parent._hlp._getFlowerIndex(true));
  1424.            
  1425.             var snd = new sndCoin();
  1426.             snd.play();
  1427.            
  1428.             z_coin=false;
  1429.            
  1430.             n_coins++;
  1431.             if (n_coins>16)
  1432.                killed();
  1433.         }
  1434.         //----------------------------------
  1435.         private function setSmoke() {
  1436.             var _smoke = new mvSmoke(_parent);
  1437.             _smoke.x = x;
  1438.             _smoke.y = y;
  1439.             _smoke.scaleX=_smoke.scaleY = scaleX;
  1440.            
  1441.             _parent.addChildAt(_smoke, _parent._hlp._getFlowerIndex(true));
  1442.            
  1443.         }
  1444.         //----------------------------------
  1445.         private function setExplosion() {
  1446.             var _ztime:Timer = new Timer(1, 4);
  1447.             _ztime.addEventListener(TimerEvent.TIMER, zExpl);
  1448.             _ztime.start();
  1449.            
  1450.             var snd = new sndBirdFall();
  1451.             snd.play();
  1452.         }
  1453.         //----------------------------------
  1454.         private function zExpl(e:TimerEvent) {
  1455.             var _expl = new mvExplosion(_parent);
  1456.             _expl.x = x;
  1457.             _expl.y = y;
  1458.             _expl.scaleX=_expl.scaleY = scaleX;
  1459.            
  1460.             _parent.addChildAt(_expl, _parent._hlp._getFlowerIndex(true));
  1461.         }
  1462.         //----------------------------
  1463.         private function add_bubble() {
  1464.            
  1465.             var _bubble = new mvBubble(_parent);
  1466.             _bubble.x = x;
  1467.             _bubble.y = y-70;
  1468.            
  1469.            
  1470.             _bubble.txBubble.text="500";
  1471.            
  1472.             _parent.addChildAt(_bubble, _parent._hlp._getFlowerIndex(true));
  1473.         }
  1474.         //----------------------------------
  1475.         override public function checkEnv() {
  1476.            
  1477.             rotation +=int(Math.random()*6-3);
  1478.             if ((rotSpeed>15) && (speedY<4)) {
  1479.                
  1480.                 setSmoke();
  1481.                
  1482.                
  1483.                 var snd;
  1484.                 if (!z_coin) {
  1485.                    
  1486.                     switch (n_coins) {
  1487.                         case 0:
  1488.                         case 1: snd =  new sndBird();break;
  1489.                         case 2: snd =  new sndBird5();break;
  1490.                         case 3: snd =  new sndBird6();break;
  1491.                         case 4: snd =  new sndBird7();break;
  1492.                         default: snd =  new sndBird();
  1493.                     }
  1494.                     snd.play();
  1495.                    
  1496.                     z_coin=true;
  1497.                     setTimeout(appTrace,500);
  1498.                    
  1499.                 }
  1500.             }
  1501.             if ((rotSpeed>40) && (speedY<4)) {
  1502.                 killed();
  1503.             }
  1504.            
  1505.             if (speedY>=4) {
  1506.                 setSmoke();
  1507.             }
  1508.                
  1509.             rotSpeed*=0.9;
  1510.             _shade.x = x-width/2;
  1511.             _shade.rotation = rotation;
  1512.            
  1513.             if (x<-200) {
  1514.                 _final();
  1515.             }
  1516.            
  1517.             if (y>450) {
  1518.                 setExplosion();
  1519.                 _parent._addScore(500);
  1520.                 add_bubble();
  1521.                 _final();
  1522.             }
  1523.         }
  1524.     }
  1525.    
  1526. }
  1527.  
  1528. //--------------------------------------------------------------
  1529. //                    mvCoin.as
  1530. //--------------------------------------------------------------
  1531. package  {
  1532.    
  1533.     import flash.display.MovieClip;
  1534.    
  1535.    
  1536.     public class mvCoin extends zBase {
  1537.        
  1538.         //----------------------------
  1539.         public function mvCoin(_inparent) {
  1540.             super(_inparent);
  1541.         }
  1542.        
  1543.         //----------------------------
  1544.         override public function user_final() {
  1545.            
  1546.             var mvf:mvFlash = new mvFlash(_parent);
  1547.             mvf.x = x;
  1548.             mvf.y = y;
  1549.             mvf.scaleX = mvf.scaleY = 1.5;
  1550.             _parent.addChildAt(mvf, _parent.getChildIndex(this));
  1551.            
  1552.         }
  1553.         //----------------------------
  1554.         private function add_bubble() {
  1555.            
  1556.             var _bubble = new mvBubble(_parent);
  1557.             _bubble.x = x;
  1558.             _bubble.y = y;
  1559.            
  1560.             _bubble.txBubble.text="100";
  1561.            
  1562.             _parent.addChildAt(_bubble, _parent._hlp._getFlowerIndex(true));
  1563.         }
  1564.         //----------------------------
  1565.         override public function checkEnv() {
  1566.            
  1567.             if (y>_parent.SPLIT_LINE) {
  1568.                 _final();
  1569.             }
  1570.            
  1571.             if (_parent._hlp._hitTestFlower(this)) {
  1572.                 _parent._addScore(100);
  1573.                
  1574.                 var snd = new sndCoinGet();
  1575.                 snd.play();
  1576.                
  1577.                 add_bubble();
  1578.                 _final();
  1579.             }
  1580.         }
  1581.     }
  1582.    
  1583. }
  1584.  
  1585. //--------------------------------------------------------------
  1586. //                    mvExplosion.as
  1587. //--------------------------------------------------------------
  1588. package  {
  1589.    
  1590.     import flash.display.MovieClip;
  1591.     import flash.filters.BitmapFilterQuality;
  1592.     import flash.filters.BlurFilter;
  1593.    
  1594.     public class mvExplosion extends zBase {
  1595.        
  1596.        
  1597.         public function mvExplosion(_inparent) {
  1598.            
  1599.             super(_inparent);
  1600.            
  1601.             speedSX=speedSY=1.7;
  1602.             speedY=Math.random()*10-5;
  1603.             speedX = Math.random()*10-5;
  1604.             alphaSpeed = -0.15;
  1605.            
  1606.             var _blurS:BlurFilter = new BlurFilter(9,9, BitmapFilterQuality.LOW);
  1607.             filters = [_blurS];
  1608.         }
  1609.        
  1610.         override public function checkEnv() {
  1611.             if (alpha<0.1) {
  1612.                 _final();
  1613.             }
  1614.         }
  1615.     }
  1616.    
  1617. }
  1618.  
  1619. //--------------------------------------------------------------
  1620. //                    mvBubble.as
  1621. //--------------------------------------------------------------
  1622. package  {
  1623.    
  1624.     import flash.display.MovieClip;
  1625.    
  1626.    
  1627.     public class mvBubble extends zBase {
  1628.        
  1629.        
  1630.         public function mvBubble(_inparent) {
  1631.            
  1632.             super(_inparent);
  1633.            
  1634.             speedY = -10;
  1635.             speedSX = speedSY = 1.05;
  1636.             alphaSpeed = -0.04;
  1637.            
  1638.         }
  1639.        
  1640.         override public function checkEnv() {
  1641.             if (scaleX>1.5) {
  1642.                 _final();
  1643.             }
  1644.         }
  1645.        
  1646.     }
  1647.    
  1648. }
  1649.  
  1650. //--------------------------------------------------------------
  1651. //                    mvSmoke.as
  1652. //--------------------------------------------------------------
  1653. package  {
  1654.    
  1655.     import flash.display.MovieClip;
  1656.    
  1657.    
  1658.     public class mvSmoke extends zBase {
  1659.        
  1660.        
  1661.         public function mvSmoke(_inparent) {
  1662.             super(_inparent)
  1663.            
  1664.             speedSX=speedSY=1.05;
  1665.             speedY=-3;
  1666.             speedX = Math.random()*4-2;
  1667.             alphaSpeed = -0.05;
  1668.         }
  1669.        
  1670.         override public function checkEnv() {
  1671.             if (alpha<0.1) {
  1672.                 _final();
  1673.             }
  1674.         }
  1675.     }
  1676.    
  1677. }
  1678.  
  1679. //--------------------------------------------------------------
  1680. //                    mvFlash.as
  1681. //--------------------------------------------------------------
  1682. package  {
  1683.    
  1684.     import flash.display.MovieClip;
  1685.     import flash.events.*;
  1686.    
  1687.    
  1688.     public class mvFlash extends zBase {
  1689.        
  1690.        
  1691.         //--------------------------------
  1692.         public function mvFlash(_inparent) {
  1693.            
  1694.             super(_inparent);
  1695.         }
  1696.         //--------------------------------
  1697.         override public function checkEnv() {
  1698.            
  1699.             if (currentFrame==totalFrames) {
  1700.                _final();
  1701.             }
  1702.         }
  1703.     }
  1704.    
  1705. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement