FlashAS基础精典教程(4)

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

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



  这里的theClip等参数(parameters)只是定义,本质上说是不存在的,因为没有内容嘛

  当我们用moveClip (ball, 10, 10);调用的时候,ball就输入到theClip中去了,这里的ball称为arguments(偶读得书少,不会翻译)

  arguments能够是个变量,也能够是个表达式(例如"a" "b",先得出结果再传输给函数)只要用逗号隔开各个参数就行

  函数如何结束呢

  正常来说,函数运行完 {}里任何语句结束,我们也能够用一句AS:return; 让他中途结束,例如:

  function say(msg) {

  return;

  trace(msg);

  }

  这个函数被调用的时候将什么都不做就结束

  return更有更重要的用途:

  function sqr(x) { // Squares a number 平方

  return x * x;

  }

  a=sqr(2); //a将会被赋予2的平方 4

  return更重要的用途就是返回数据

  在AS里面,有个内建的函数Math.sqrt(就是说您敲入的时候会变色),其功能和我们刚才做的sqr函数是相同的,现在您该知道内建函数也没什么神秘的,我们相同能够做出相同功能的来。

  第八章 第二个版本选择题的制作

  读到这您发现什么,我是发现了,MOOCK不是在教AS,他简直是在上编程课。

  在第一个版本的制作里您发现了什么缺点?是的,输入了很多次AS,很麻烦。

  我们要做的是用函数来集中我们的代码,只有集中了才好修改,越复杂的程式越是如此(想象一下在很多个MC之间查代码,真是头痛,当然是集中一块好)

  这个多选题,我们就归结成两个函数吧answer和gradeUser

  代码(能够直接看源程式,在上面地址那个ZIP里面的quiz-version2.fla):

  大部分的代码都被集中到第一帧了,千万不要被一大堆代码吓着了,代码这么长,只是为了让阅读者看得更清楚而已。(其实越短的代码才越可怕呢,呵呵)

  // Stop the movie at the first question

  stop ();

  // Initialize main timeline variables 定义变量

  var displayTotal; // Textfield for displaying user's score

  var numQuestions = 2; // Number of quiz questions

  var q1answer; // User's answer for question1

  var q2answer; // User's answer for question2

  var totalCorrect = 0; // Number of questions answered correctly 以上和例一相同

  var correctAnswer1 = 3; // The correct choice for question 1 第一题的正确答案

  var correctAnswer2 = 2; // The correct choice for question 2 第二题的正确答案

  // Function to register user's answers 这个函数的功能是提交答题者的答案

  function answer (choice) {

  answer.currentAnswer ;

  //现在answer.currentAnswer是1,正在提交的是第一题,下一次answer.currentAnswer就变成2,代表提交的是第二题

  set ("q" answer.currentAnswer "answer", choice);

  // 不复杂不复杂,"q" answer.currentAnswer "answer"第一题的时候就是q1answer,第二题是q2answer,把参数choice传过来的值放到两个变量里面而已

  if (answer.currentAnswer == numQuestions) {

  // 判断是不是两题都答完了,是就转到问题结束帧

  gotoAndStop ("quizEnd");

  } else {

  gotoAndStop ("q" (answer.currentAnswer 1));

  }

  }

  // Function to tally user's score 这个函数是改题的

  function gradeUser() {

  // Count how many questions user answered correctly 将两个答案和正确答案比较,对就totalCorrect加一

  //此处用了一个for循环,大家如有疑问的,能够查AS字典,在帝国就有中文版

  for (i = 1; i <= numQuestions; i ) {

  // 下面用的eval有必要说一下,他的作用是将字符串和变量组成一个新的变量名,是个很方便的功能

  if (eval("q" i "answer") == eval("correctAnswer" i)) {

  totalCorrect ;

  }

  }

  // Show user's score in an on-screen text field 将答案显示出来,和第一个例子同

  displayTotal = totalCorrect;

  }

  好了,第一帧的函数写好了,之后每个答案的选择按钮就简单了

  例如第一题的选项一,就写:

  on (release) {

  answer(1);

  }

  第二题的写法同上(假如您的选择题有很多道,做法都是相同的,只要复制第一题,然后把题目改了就行)

  最后在quizEnd帧里面调用改题的函数gradeUser();

  分析第二个例子是代码,您会发现比第一个例子精简了很多。

  而集中在同一帧的代码,将:

  * 更容易修改

  * 更容易升级

  * 更少的出错机会

  * 更容易查错

  * 更精简(更少的字节数)

  第九章 数组(arrays)

  在下一个新版本的多选题里,我们将使用什么AS的特性,来让他更好呢?

  那就是数组。

  数组就是一系列的数据(MOOCK又开始上课了,chocobo的英文和电脑都不算好,为免误人子弟,概念性的东西尽量精简)

  例如这样两个变量储存的数据:

  fruit1 = "oranges";

  fruit2 = "apples";

  他们是互相单独的,使用起来很不方便,我们需要的是数组,以下是数组的定义方法,用“&#;”框住,用“,”分隔开每个元素:

  fruitList = ["oranges", "apples"];

标签:

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

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

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