FlashAS基础精典教程(2)

2008-04-02 11:06:09来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折



  条件(conditionals):(look at a series of options and make a decision about what to do based on the circumstances)

  不翻译了,大概意思就是美女穿着新衣上街,会先看看外面会否下雨,这就叫条件判断啦

  if(天气=="下雨"){trace("还是带把雨伞吧")}

  循环(loop):假如要输出5个数字,您是写5遍trace命令吗?更多的就不行了吧

  您能够用while和for命令来完成重复的动作

  事件(events):放在frame里面的代码只要电影播放到就会执行,放在MC、button的代码则只在解释器发现预先配置好的事件被触动的时候执行。最典型的就是一下鼠标点击按钮造成press时间啦。

  函数(functions):将一组程式打包成一句命令来调用他,其实FLASH里面的很多命令就是函数:trace、play、gotoAndStop等等都是。

  第五章 开始第一个版本的选择题的制作

  多选题共有两道

  如图,大家应该养成一个好习惯,用一个单独的层来放置代码,并把该层放到最上面会更便于修改。

  第二层则单独放置Label。不要觉得麻烦,只要您想到世界上大部分好的闪客都是如此做的,您就不会嫌麻烦了。

  以下的层放的是选择题的内容,如上图

  开始创建题目

  在question 1层的第一帧,写上题目"When were movie clips introduced into Flash?" (什么时候FLASH开始引入电影夹子的概念?)

  再写上三个选项:Version 1, Version 2, Version 3

  跟着我们再做一个用来选择的方框按钮,从Library里面拖出这样的三个按钮,分别放到各个选项的前面。

  第二题的创建我们用第一题来做个模版,选择question 1层的第一帧,选择菜单上的Edit>>Copy Frames

  再选择question 2的第十帧,Edit>>Paste Frames 将第一题复制过来了

  当然问题要改成"When was MP3 audio support added to Flash?" (什么时候FLASH开始支持MP3格式导入?),答案也要改成Version 3, Version 4, Version 5

  数据初试化

  虽然是个很简单的FLASH,但是象其他复杂的FLASH相同,先告诉FLASH要用到的数据,例如题目的答案等,这是个好习惯,越复杂的FLASH,受惠越多

  正常来说定义数据应该LOADING结束之后的。

  为了把题目定在第一题,ACTION还需要一句stop();

  选择第一帧,在ACTION面板里面输入代码

  // init main timeline variables

  var q1answer; // user's answer for question 1 第一题用户的答案

  var q2answer; // user's answer for question 2 第二题用户的答案

  var totalCorrect = 0; // counts number of correct answers 答对的题数

  var displayTotal; // text field for displaying user's score 显示用户分数的变量

  // stop the movie at the first question

  stop();

  您会发现//开头的那一行代码都变了色,//代表的是注释,是用来辅助阅读代码用的,对代码执行没有影响(是的,您在里面写笑话,写小说都能够,不会影响您的FLASH的^-^)

  我们定义了四个将要用到的变量,用途已在注释里面写了,写注释也是个好习惯

  关于命名变量名

  变量起名displayTotal,意思是 display total,因变量名不能使用空格和破折号,所以用第二个单词的开始字母大写,以此分隔单词

  一些程式员也喜欢用下划线:display_total

  记住一定要给您的变量起一个一眼就能识别意义的名字

  添加label

  我们知道第二题是在第10帧的,我们只需要一句AS:gotoAndStop(10); 就能够执行第二个问题了

  但是MOOCK告诉您这不是好习惯,因为动画的内容是不断改变的,所以我们应当习惯使用label,即使帧数如何变化,只要label指向正确,无需修改ACTION都能够继续运行(chocobo再提醒您吧,不要使用相同的label,即使在不同是Scene当中)

  好了,我们在label层的第1、10、20分别F6创建关键帧,给他们写上init、q2、quizEnd

  要给按钮写上代码了

  在三个按钮里面分别写入代码,大同小异的:

  按钮一:

  on (release) {

  q1answer = 1;

  gotoAndStop ("q2");

  }

  按钮二:

  on (release) {

  q1answer = 2;

  gotoAndStop ("q2");

  }

  按钮三

  on (release) {

  q1answer = 3;

  gotoAndStop ("q2");

  }

  这三段代码用人类的语言描述,就是:当用户点击某个按钮选择答案后,把他选择的答案记录到q1answer变量中去,然后进入下一题。

  on这个单词代表随后的就是个要触发的事件

  release是指在按钮上松开鼠标这样一个事件

  当动画执行到这里的时候,三个按钮都会分别监听用户有没有做在按钮上放开鼠标这个动作,一旦发生,按钮就会自动执行大括号{}里面的代码了

  若用户选第一个,{}中是:

  q1answer = 1; //用q1answer变量记住用户选择的是第一个答案

  gotoAndStop ("q2"); //进入下一题

  上面我用了注释的方法来解释两句代码,您必须习惯,因为不是任何源程式都有教程,但是好的源程式都会有注释

  第二题的按钮和前面相似,只是变量换为q2answer,选择完进入结束的画面,例如第一个,改为:

  on (release) {

  q2answer = 1;

  gotoAndStop ("quizEnd");

  }

  结束的画面

  结束应该做什么,当然是告诉用户分数啦,写在第20帧,就是label为quizEnd的那帧的代码:

  // tally up the user's correct answers

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 使用钢笔工具绘制曲线路径

下一篇: 拖拽动作连同碰撞动作周详讲解