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

本周,上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;"> 

导致我排版的时间比我写文章的时间还长!

时间: 2024-10-10 14:39:14

actionscript3写飘雪花程序,为培养孩子编程兴趣的相关文章

不要困在自己建造的盒子里——写给.NET程序员(附精彩评论)

转自:http://kb.cnblogs.com/page/92260/ 此文章的主旨是希望过于专注.NET程序员在做好工作.写好.NET程序的同时,能分拨出一点时间接触一下.NET之外的东西(例如10%-20%的时间),而不是鼓动大家什么都去学最后什么都学不精,更不是说.NET不行或劝大家放弃.NET.恕我愚钝,此主旨在文中表达不够清楚,看评论中很多朋友误解了,特此说明. 另外,本文中的观点并不全部是我个人的想法,相当一部分来自我以前聊过天的某些大牛,他们很多来自微软.百度.腾讯等知名企业,并

国艺练字是专为你培养孩子兴趣的好老师!

对于大部分初学者而言,练字都是从偏旁部首.笔画顺序开始的,所以会感觉硬笔书法练字是一件比较枯燥的事情.如果一件事情无法让你有兴趣,就很难坚持.很多初学者都会反映说练字的一大难点就是坚持.爱因斯坦说过:"兴趣是最好的老师."所以想要坚持练字,最好的办法就是培养练字的兴趣. 很多初学者都觉得疑惑练字就是一笔一画的书写,就是重复不断的练习,时间久了会觉得无聊是一件很正常的事情.如何持续保持对练字的兴趣呢?其实,*少儿书法培训练字兴趣的培养,最重要的是你书写的是什么和你书写的成果. 你书写的是

没有基础也能写个小程序

文章记录了小程序的设计思路,介绍了使用的技术,描述了提交审核的故事,还提供了最终的完整源码 背景说明 微信小程序自从发布以来就占据着超高的话题热度,一直以来都想开发一款自己的小程序,但苦于不懂前端迟迟没有开始.偶然发现了ColorUI这个开源的小程序组件库,界面好看且提供Demo,心中狂喜马上动手 做个什么小程序呢?想了一圈这半年多一直坚持在写技术文章,为此开通了微信公众号,因为公众号查看文章列表不友好,且不方便在微信以外的渠道传播,我又利用Github Pages搭建了运维咖啡吧网站主页,就想

写一个ajax程序就是如此简单

写一个ajax程序就是如此简单 ajax介绍: 1:AJAX全称为Asynchronous JavaScript and XML(异步JavaScript和XML),指一种创建交互式网页应用的网页开发技术.     2:基于web标准XHTML+CSS的表示:     3:使用 DOM进行动态显示及交互:     4:使用 XML 和 XSLT 进行数据交换及相关操作:     5:使用 XMLHttpRequest 进行异步数据查询.检索: 程序员应用ajax的途经: 1:.Net下的Ajax

用Java写的爬虫程序

这是一个web查找的根本程序,从命令行输入查找条件(开端的URL.处置url的最大数.要查找的字符串), 它就会逐一对Internet上的URL进行实时查找,查找并输出匹配查找条件的页面. 这个程序的原型来自<java编程艺术>, 为了非常好的剖析,站长去掉了其间的GUI有些,并稍作修改以适用jdk1.5.以这个程序为基础,可以写出在互联网上查找 比如图像.邮件.页面下载之类的"爬虫". 先请看程序运转的进程: D:\java>javac  SearchCrawler

用tornado 写异步回调程序

用tornado,一般都用到它的 AsyncHTTPClient的 fetch.我们可以参考 fetch,使用tornado的特性,写异步回调程序 首先看看 fetch的实现,关键是用了future def fetch(self, request, callback=None, **kwargs): """Executes a request, asynchronously returning an `HTTPResponse`. The request may be eit

向经典致敬,WHY翻写3D图形程序 [开源]

个人认为学习3D图形程序开发,有两套经典教程.D3D的<D3D游戏开发编程基础>也就是红龙那本书.OpenGL的NEHE教程.为向经典致敬,将我之前翻写他们的程序开源. 我所做的工作是将其所有的DEMO集成到一个项目中.所有的DEMO使用同一个渲染设备.这样可以在一个进程中自由地切换DEMO.写这套东西最大的麻烦是,每一个DEMO对渲染设备状态做出的改变,在其退出时需要恢复回去.这看上去很容易,但当出现问题时查起来却很麻烦,因为教程中的DEMO实在是太多了.最常见的问题是渲染效果不对了,这在搞

用vi写一个C 程序

? 1 2 3 4 [email protected]:~# ls 1.txt  3.txt  5.txt   6.py   evilxr      test 2.txt  4.txt  5.txt~  e.txt  evilxr.txt [email protected]:~# vi test.c [email protected]:~# cat test.c #include <stdio.h> int add(int a, int b) { return a + b; } int mai

在android系统上写C语言程序--开机启动该程序不进入安卓系统

今天要写的这篇博文意义重大,也是网上很少有的,这是在我工作中学会的一项技术,当然,它也是由简单的问题组合而来的.如何在安卓中写C语言程序,调试安卓驱动,测试程序的的一项重要技能,下面我就不说废话了,直接说实用的,怎么用这个东西. 关于这个问题,相信很多学Android的都会去关注这个问题,大家普遍会有个这样的疑问:安卓是怎么跑起来的? 最简单的说法,安卓系统是这样加载的: Bootloader------Kernel(对应平台版本的Linux内核)------filesystem文件系统(这个就