(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所示。
圖8-11 星火飄落效果
第30行代碼是為火花加入y軸坐標方向上的一個固定加速度,而第31行代碼則是火花在x軸坐標方向上的一個-5~5之間的隨機加速度值。
(4)按Ctrl+Enter組合鍵發布程序。
進入論壇參與討論和交作業:http://www.missyuan.com/viewthread.php?tid=424468