标题: 中秋节快乐! [打印本页]
作者: 风铃草 时间: 2012-9-27 07:44 标题: 中秋节快乐!
作者: 梦雨如烟 时间: 2012-9-27 08:37
做得真好!要向版主好好学习
作者: 面壁 时间: 2012-9-27 21:10
风铃草 发表于 2012-9-27 07:44
见到楼主的新作,不免勾起了聊兴。
学习劲头当然是让人佩服的。讨论制作中的方方面面也是我感兴趣的。
先酽然的出示一下脚本的改动,过后再细细讨论(组织文字需要一些时间)。
1、按钮两用,是相对较“高级”的应用;
2、日期、时间显示部分的脚本更改于下:
var A = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
mydate = new Date (); //构造日期函数
seconds = mydate.getSeconds (); //获取秒钟数
minutes = mydate.getMinutes (); //获取分钟值
hours = mydate.getHours (); //获取小时值
day = A[mydate.getDay ()]; //获取星期值
date = mydate.getDate (); //获取日期值
month = mydate.getMonth () + 1; //获取月份值
year = mydate.getFullYear (); //获取年份值
time = hours + ":" + minutes + ":" + seconds;
datefinal = year + "年" + month + "月" + date + "日" + day;
也许,你会来兴趣,差别这么大,怎么回事呢?
套色的部分是更改的内容,其他的不需要了,删除。
编程与著文有些类似:言简意赅。话要讲清,能省则省。
暂写这些。过后细说。
问好。
作者: 面壁 时间: 2012-9-28 01:03
续:
细说:赋值语句、(日期)类、数组
首先,明确一些概念。
1、1+2=3,这是算术的计算式,它表述为:1与2相加,结果为3;
脚本(编程中),如:date = mydate.getDate (); 表述为:将右边的“值”赋给左边的“对象”;
值,可以是数值、字符、函数等,对象为“变量”,与值的类型对应(不然,软件会报错);
对于 date = mydate.getDate (); 这样的赋值语句,一定要做到心中有数,右边的“东西”是什么,是数字?字符?……
这个语句中,mydate.getDate (); 是一个结果,为整数。如果它为3,那么变量 date 也为3。
2、所谓“类”,是脚本中的“程序块”,它具备特定的功能。Date () 就是类,叫日期类。
对于类,我们可以将它理解为“计划书”、“操作方案”,也就是说它作好了各种准备,如果启动它,它就会按计划做相应的事。
mydate = new Date (); 这一句,相当于启动了类。mydate 为新建的对象,它相当于复制了软件里已有的 Date () 日期类。这是在软件中应用某个类的基本方式。既然是“复制”,也就是说 mydate 具有 Date () 的所有特性、特征。行话叫“继承”。
日期类的功能,就是读取电脑中,系统的日期、时间值。有人赞许别人的制作时常说:“你做的时钟好准”。这是外行话。可以做个试验:将电脑的时间调整一下,再看看制作的时间准不准。准不准不是做出来的,它由电脑的时间值决定。而电脑的时间值可以人为设置。准不准最终由人决定。电脑的计时系统准不准,这是另一回事,它由硬件保证。
3、数组,在编程中用得很多。我们把它当作一个仓库。仓库里当然可以放各种东西,对于编程来说,就是数值、字符、数据等等。仓库的管理,到仓库取东西,当然得有一套方法,乱来就做不成事了。
var A = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
上面就是一个数组(仓库)的情况。数组也是一个类。正规一点的创建方式应该为:
var A = new Array();
var 表示新建的意思,A为数组名,右边的方括号内就是仓库里放的“东西”,用逗号分隔。
这个实例中,数组内有7个对象,都为“字符串”。
数组内的对象,每一个都具有一个“序列号”,序列号左起,从0开始。当我们要调用某个对象时(从仓库取货时),要用到“序列号”。
比如:T = A[2]; 表示,T 的值为:“星期二”。换句话说:T到数组里面取出“序列号”为2的对象。
千万注意:这个序列号为2,序列号是从0开始的,所以取出的是第3个对象。
好了,基本概念就说这些,在软件的帮助里都能查到。这里,打着比方说,是想通俗一点,好理解一点。准确的意思还是以帮助为准。
上面作好了准备,下面再说说改动的地方。
1、先创建一个数组A,这是换一种手段来编程,没有什么特别的。理解了“数组”的相关内容就行了。
2、原作中,是用判断的方式来获取某个数据,这里改为:
day = A[mydate.getDay ()];
是用读取数组的方式。上面说了,mydate.getDay () 表示一个整数。假如,某一天,从电脑的日期中读出的结果为2,那么
day = A[mydate.getDay ()]; 实质上就是 day = A[2]; 那么 day 到数组中取(序列号为2的)第三个对象就是“星期二”。
3、对于 month = mydate.getMonth () + 1; 因为mydate.getMonth () 的结果与实际的月份数差1,将它补上,也就解决了。
对于改动,不是绝对真理,手法不同而已。也可以说是“不同的口味”。囫囵吞枣与细细咀嚼都可以吃饱。但各有各的味道。
对于改动,看似复杂。其实,将某个“东西”表示什么弄清楚了,并不复杂。初学时不习惯,慢慢就好了,并且会觉得很有嚼头。
作者: 风铃草 时间: 2012-9-28 09:18
谢谢面壁跟帖和祥细讲解!真是我们初学者的福音。已复制保存,好好去学习理解,慢慢搞清代码的含义。看了代码差别这么大,确实很感兴趣。最近在网上看到了一个音乐外链的代码比你给我的复杂繁琐多了,你拿出来的都是精华!谢谢!
作者: 独影孤踪 时间: 2012-9-28 16:36
欣赏学习新作。
作者: 面壁 时间: 2012-9-28 23:01
谢谢面壁跟帖和祥细讲解!真是我们初学者的福音。已复制保存,好好去学习理解,慢慢搞清代码的含义。看了代 ... 风铃草 发表于 2012-9-28 09:18
学长客气。
脚本的多少,不能衡量编程的优劣。F8因“容错”能力强一些(允许乱砣),不很规范也可以;F9对编程很严格,尤其对新对象的创建。所以,同样的效果,F8比F9的制作,脚本会少许多。如果F9采用“文档类”的方式写脚本,量还要大。
脚本的量,有一种是“结构”方面造成的,含有“设计”的性质,怎样让事做得又好又省;另外是表达,书写方面的。如下面的判断:
if(条件存在)
{A=B}
else
{A=C}
换一种表达: A = (条件存在)?B:C;
初接触脚本,以直白的表达方式为宜,这样,每一行为一个结果,判读起来轻松一些。如上面制作中的这一句:
day = A[mydate.getDay ()]; //相当于混合运算
折开、直白的表达就成为两行
k = mydate.getDay (); //第一次的运算结果
day = A[k]; //第二次的运算、最终结果
感谢回复。
佳节愉快,合家安康。
作者: 风铃草 时间: 2012-9-29 08:39
回复 2# 梦雨如烟
谢谢梦雨如烟跟帖!祝中秋国庆快乐!
作者: 风铃草 时间: 2012-9-29 08:40
回复 6#
谢谢独影孤踪!祝中秋国庆快乐!
作者: 风铃草 时间: 2012-9-29 08:43
回复 7# 面壁
谢谢面壁再次跟帖!原来还有这么多学问,太深奥了!
F8“容错”能力强一些,那我就喜欢flash8,可以允许乱砣!
欢迎光临 湖南知青网2012年度 (http://2012.hnzqw.com/) |
Powered by Discuz! 7.2 |