actionscript3寫飄雪花程式,為培養孩子編程興趣

來源:互聯網
上載者:User

標籤:

    本周,上4年級的小孩開始學方程式,用到了代數。為了方便孩子理解,並學以致用,打算教他一點編程。

   程式的選擇上不能太難,比如JAVA、C#應該不行,學習javascript應該行,但是會比較枯燥,於是決定讓他玩玩FLASH。雖然隨著HTML5 的興起,FLASH正在沒落,但FLASH卻簡單易懂,並且還能協助孩子畫畫。

    這次編程選擇了飄雪花的程式,雖然簡單,但內容卻還比較全,涉及了:手動畫影片片段(MC),幀,actionscript,變數,隨機函數,函數方法,事件,時間等等。步驟:

1、FLASH CS6,建立“actionscript 3”,背景黑色。

2、插入“建立元件”(捷徑:Ctrl + F8),並要選擇“為ActionScript”匯出,目的是讓這個元件成為一個類。比如 類 名,我們可以起個:snow 。隨便用個鉛筆工具畫個“米”字形就行,稍微粗一點,還要用縮放工具縮小一些。顏色自然要用白色咯。

3、在第一幀中,加入背景(我沒加)。然後再加一層,按F9,彈出編程框(AS3要求編程不能和其他層共用一個層)。內容如下(含解釋):

import flash.utils.Timer; //前面的這2個斜杠,就是注釋的意思,表示其後內容不會別電腦識別。還有這行不用寫,因為在寫後面的Timer時,系統會自動寫for (var i:int=0; i<230; i++) { //迴圈的寫法,表示迴圈230次,每次增加 1       var mc:MovieClip=new snow(); //變數都是以 var 開頭。snow就是前面我們定義好了的mc的類。因為迴圈230次,這行就表示每次迴圈都要新生出來一個一模一樣的雪花       addChild(mc); //要想出現在影片中,就要用這個addChild添加進來。       mc.x=Math.random()*stage.stageWidth; //Math.random()表示隨機產生一個0到1之間的小數,stage.stageWidth是內建的屬性,表示本影片的寬度。所以本行就是定位雪花每次出現的X座標位置,且不會大於影片的總寬度。       mc.y=Math.random()*stage.stageHeight; //出現的Y座標。X/Y座標都是從左上方開始計數。       mc.scaleX=mc.scaleY=Math.random()*0.8+0.2; //縮放比例,表示是最小是原來的0.2倍,最大1倍。       mc.alpha=Math.random()*0.6+0.4; //透明度最小為40%,最大為100%。       mc.vx=Math.random()*2-1; //以上參數在點擊.之後都會自動出現,但這個vx和下面的vy卻不會出現,這是自訂的,你可以隨便寫作其他。表示每次下落的x/y位移量。       mc.vy=Math.random()*3+3;       mc.name="mc"+i; //給每個雪花編一個名字,下面的程式好找。}//addEventListener(Event.ENTER_FRAME,snowP); //本來是這行,flash每秒大約是24幀,就是每1/24秒就執行這個叫snowP的函數。//addEventListener(MouseEvent.MOUSE_OVER,snowP); //和上行一樣,都是事件添加的方法。var timer1:Timer=new Timer(50); //為了精確控制時間間隔,用這個,表示沒50毫秒就執行一次。timer1.addEventListener(TimerEvent.TIMER,snowP); //這個添加時間的函數前,用到了執行個體化timer1。事件名字可以從編程框的左邊選擇。timer1.start(); //開始//function snowP(evt:Event):void { //這行是對應Event.ENTER_FRAME的function snowP(evt:TimerEvent):void { //和TimerEvent.TIMER對應    for (var i:int=0; i<230; i++) {        var mc:MovieClip=getChildByName("mc"+i) as MovieClip; //根據上面定義的雪花名字來找到已經執行個體化的影片,as 是作為的意思。當你寫get後,可以點擊“顯示代碼提示”,就可顯示後面的內容,對腦子不好的人很好。        mc.x+=mc.vx; //每次左右位移一點,下面是往下一點。        mc.y+=mc.vy;        if (mc.y>stage.stageHeight) { //如果雪花落到了影片的最下面之外,就從最上面從新開始。        mc.y=0;        }        if (mc.x<0||mc.x>stage.stageWidth) { //飄落到左右外,再隨機橫座標出現。        mc.x=Math.random()*stage.stageWidth;        }     }}


完成了,可以試試。

對上面的這個影片,可以把他們統統做成一個MC,這樣,大影片中,就可以嵌套這個小影片了,小影片演小影片的,大環境演大環境的。

這個網站的blog編輯器實在是無法說,系統老是出現許多亂碼,如:

</span><span style="font-family: Arial, Helvetica, sans-serif;"> 
導致我排版的時間比我寫文章的時間還長!

actionscript3寫飄雪花程式,為培養孩子編程興趣

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.