使用Flash CS5制作鼠标触发的焰火飘落互动特效动画图片(4)
(2)新建一个ActionScript文件,将其命名为Main,然后将其保存在该实例的文件夹中,再输入控制代码。
* 该类为扩展元件类 * @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方法进行舍入并取得整数,这样当鼠标指针由下往上移动时,就会产生星火飘落的效果,如图11所示。
图11 星火飘落效果
第30行代码是为火花加入y轴坐标方向上的一个固定加速度,而第31行代码则是火花在x轴坐标方向上的一个-5~5之间的随机加速度值。
(4)按Ctrl+Enter组合键发布程序。