码迷,mamicode.com
首页 > 其他好文 > 详细

actionscript3写飘雪花程序,为培养孩子编程兴趣

时间:2015-05-07 22:03:51      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

    本周,上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写飘雪花程序,为培养孩子编程兴趣

标签:

原文地址:http://blog.csdn.net/fengyun14/article/details/45566209

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!