FlashAS基础精典教程(4)
2008-04-02 11:06:09来源:互联网 阅读 ()
这里的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
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 使用钢笔工具绘制曲线路径
下一篇: 拖拽动作连同碰撞动作周详讲解
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
