PS设计教程网欢迎你!

Flash CS4制作梦幻的星火飘落效果(2)

文章来源于 动画设计与制作208例,感谢作者 lby 给我们带来经精彩的文章!
设计教程/设计教程/Flash教程2009-10-13
(2)新建一个ActionScript文件,将其命名为Main,然后将其保存在该实例的文件夹中,再输入控制代码。 /** * 该类为主程序类 * @author lbynet * @version 0.1 */ package { import flash.display.Sprite; import fla

(2)新建一个ActionScript文件,将其命名为Main,然后将其保存在该实例的文件夹中,再输入控制代码。

/**  
* 该类为主程序类  
* @author lbynet  
* @version 0.1  
*/  
package {   
    import flash.display.Sprite;   
    import flash.display.MovieClip;   
    import flash.events.Event;   
    import flash.events.MouseEvent;   
    import flash.ui.Mouse;   
    public class Main extends Sprite {   
           
        private var star:MovieClip;   
  
        public function Main() {   
  
            Mouse.hide();   
            this.star = new Star_mc();   
            addChild(star);   
            stage.addEventListener(MouseEvent.MOUSE_MOVE, moveHandler);   
        }          
        private function moveHandler(e:MouseEvent):void {   
            this.star.x = stage.mouseX;   
            this.star.y = stage.mouseY;   
               
            var _mc = new Magic_mc();   
            _mc.x = stage.mouseX;   
            _mc.y = stage.mouseY;   
            addChild(_mc);   
            _mc.addEventListener(Event.ENTER_FRAME, RemoveDrop);   
        }   
        private function RemoveDrop(event:Event) {   
            var _mc:MovieClip = event.target as MovieClip;   
               
            if (_mc.scaleX <= 0) {   
                _mc.removeEventListener(Event.ENTER_FRAME, RemoveDrop);   
                removeChild(_mc);   
            }   
            //trace(this.numChildren)   
        }   
           
    }   
}

技巧与提示:

该文档类基本包含了“星星洒落”实例中Main文档类的知识,此外第18行代码为Mouse类的hide()方法,用于隐藏鼠标指针,在使用该方法前必须先导入Mouse类(如第11行代码)。

该文档类定义了一个私有属性Star,第19行代码是为该属性赋值,值为所创建的元件类(Star_mc),并将其添加到显示列表中(如第20行代码),而24和25行代码是为该元件类应用鼠标跟随效果。

(3)同样新建一个ActionScript文件,然后输入控制代码。

/**  
* 该类为扩展元件类  
* @author lbynet  
* @version 0.1  
*/  
package {   
       
    import flash.display.MovieClip;   
    import flash.events.Event;   
  
    public class Magic_mc extends MovieClip {   
           
        private var dis:Number;   
           
        public function Magic_mc() {   
            init();   
        }   
        private function init() {   
            var Random = 1 + Math.round(Math.random()*4);   
            this.gotoAndStop(Random);   
               
            this.scaleX = this.scaleY = Math.random();   
            //产生随机数-5到5之间的随机数   
            dis = Math.round((Math.random()-.5)*10);   
            this.addEventListener(Event.ENTER_FRAME,enterFrameHandler);   
               
        }   
        private function enterFrameHandler(event:Event) {   
               
            this.y += 5;   
            this.x += dis;   
               
            this.scaleX -=.005;   
            this.scaleY -=.005;   
        }   
           
    }   
}

技巧与提示:

第19和20行代码是为该元件类创建一个1~5之间的随机数,使该影片剪辑元件类在实例化(被创建时)时将播放头移到并停止在指定的时间帧上。

Math.random()方法产生0~1之间的随机数,Math.random()*4方法返回到0~4之间的随机数,而Math.round()方法用于向上或向下舍入为最接近的整数并返回该值,所以1+Math.round(Math.random()*4)方法取得1~5之间的随机整数值;gotoAndStop()语句使影片剪辑的播放头移到并停止在指定的时间帧上。

通过使用Math.random()-0.5 方法来生成-0.5~0.5之间的随机数,然后乘以10得到-5~5之间的随机数,再使用Math.round方法进行舍入并取得整数,这样当鼠标指针由下往上移动时,就会产生星火飘落的效果,如图8-11所示。

Flash CS4制作梦幻的星火飘落效果

图8-11  星火飘落效果

第30行代码是为火花加入y轴坐标方向上的一个固定加速度,而第31行代码则是火花在x轴坐标方向上的一个-5~5之间的随机加速度值。

(4)按Ctrl+Enter组合键发布程序。

进入论坛参与讨论和交作业:http://www.missyuan.com/viewthread.php?tid=424468

版权所有PS设计教程网公安备案:苏公网安备 32058302001023号工信部备案:沪ICP备09005587号
aaa