返回列表 发帖

中秋节快乐!


友情提示:请不要一贴多发!每贴最多发二个栏目!

做得真好!要向版主好好学习
人生是一张单程的车票,珍惜每分每秒,健康快乐每一天!

友情提示:请不要一贴多发!每贴最多发二个栏目!

TOP

风铃草 发表于 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;


  也许,你会来兴趣,差别这么大,怎么回事呢?
  套色的部分是更改的内容,其他的不需要了,删除。
  编程与著文有些类似:言简意赅。话要讲清,能省则省。
  暂写这些。过后细说。
  问好。


友情提示:请不要一贴多发!每贴最多发二个栏目!

TOP


续:
细说:赋值语句、(日期)类、数组
  首先,明确一些概念。
  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,将它补上,也就解决了。

  对于改动,不是绝对真理,手法不同而已。也可以说是“不同的口味”。囫囵吞枣与细细咀嚼都可以吃饱。但各有各的味道。
  对于改动,看似复杂。其实,将某个“东西”表示什么弄清楚了,并不复杂。初学时不习惯,慢慢就好了,并且会觉得很有嚼头。


友情提示:请不要一贴多发!每贴最多发二个栏目!

TOP

谢谢面壁跟帖和祥细讲解!真是我们初学者的福音。已复制保存,好好去学习理解,慢慢搞清代码的含义。看了代码差别这么大,确实很感兴趣。最近在网上看到了一个音乐外链的代码比你给我的复杂繁琐多了,你拿出来的都是精华!谢谢!

友情提示:请不要一贴多发!每贴最多发二个栏目!

TOP

欣赏学习新作。

寸有所长,尺有所短。

友情提示:请不要一贴多发!每贴最多发二个栏目!

TOP

谢谢面壁跟帖和祥细讲解!真是我们初学者的福音。已复制保存,好好去学习理解,慢慢搞清代码的含义。看了代 ... 风铃草 发表于 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];            //第二次的运算、最终结果


 

  感谢回复。
  佳节愉快,合家安康。
 

友情提示:请不要一贴多发!每贴最多发二个栏目!

TOP

回复 2# 梦雨如烟

 


谢谢梦雨如烟跟帖!祝中秋国庆快乐!

友情提示:请不要一贴多发!每贴最多发二个栏目!

TOP

回复 6#

谢谢独影孤踪!祝中秋国庆快乐!

友情提示:请不要一贴多发!每贴最多发二个栏目!

TOP

回复 7# 面壁

 

谢谢面壁再次跟帖!原来还有这么多学问,太深奥了!

F8“容错”能力强一些,那我就喜欢flash8,可以允许乱砣!

友情提示:请不要一贴多发!每贴最多发二个栏目!

TOP

返回列表