快来看flash - as入门教程(5)

2019-05-18 21:03

要输入,我们的函数改写好了:

function moveClip (theClip, xDist, yDist) { theClip._x += xDist; theClip._y += yDist; }

当我们要实现原来函数功能的时候,现在调用新函数就变成 moveClip (ball, 10, 10);

定义函数的时候function moveClip (theClip, xDist, yDist) {

这里的theClip等参数(parameters)只是定义,本质上说是不存在的,因为没有内容嘛 当我们用moveClip (ball, 10, 10);调用的时候,ball就输入到theClip中去了,这里的ball称为arguments(偶读得书少,不会翻译)

arguments可以是一个变量,也可以是一个表达式(例如\,先得出结果再传输给函数)只要用逗号隔开各个参数就行 函数如何结束呢

正常来说,函数运行完 {}里所有语句结束,我们也可以用一句AS:return; 让它中途结束,例如:

function say(msg) { return; trace(msg); }

这个函数被调用的时候将什么都不做就结束 return还有更重要的用途:

function sqr { // 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 (\

// 不复杂不复杂,\+ answer.currentAnswer + \第一题的时候就是q1answer,第二题是q2answer,把参数choice传过来的值放到两个变量里面而已 if (answer.currentAnswer == numQuestions) { // 判断是不是两题都答完了,是就转到问题结束帧 gotoAndStop (\ } else {

gotoAndStop (\} }

// 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(\

totalCorrect++; } }

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

displayTotal = totalCorrect; }

好了,第一帧的函数写好了,之后每个答案的选择按钮就简单了 例如第一题的选项一,就写: on (release) { answer(1); }

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

最后在quizEnd帧里面调用改题的函数gradeUser(); 分析第二个例子是代码,你会发现比第一个例子精简了很多。 而集中在同一帧的代码,将: * 更容易修改 * 更容易升级 * 更少的出错机会 * 更容易查错

* 更精简(更少的字节数) 第九章 数组(arrays)

在下一个新版本的多选题里,我们将使用什么AS的特性,来让它更好呢? 那就是数组。

数组就是一系列的数据(MOOCK又开始上课了,chocobo的英文和计算机都不算好,为免误人子弟,概念性的东西尽量精简) 例如这样两个变量储存的数据: fruit1 = \fruit2 = \

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

现在两个数据是放到同一个数组里面了,我们开始详细解说数组 数组里面每一个数据称为元素(element)。

而每一个元素都有个独立数字代表所处的位置,数字叫索引(index),注意! 第一个数据的索引是0,第二个才是1

要按索引来提出数据,我们要用一个运算符&#;,例如使用fruitList第一个元素赋值给a:

a=fruitList�;

又例如将a的值赋给fruitList第一个元素: fruitList�=a;

当然&#;里面也可以放表达式、变量: var index = 3; // Set numApples to 2 var a = fruitList[index]; 下面是个使用表达式的例子:

// Create a myFrames array. Note the legal formatting. 建立一个记录LABEL的数组


快来看flash - as入门教程(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(新)天桥施工组织设计(体育馆) -

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: