FlashAS基础精典教程(6)
2008-04-02 11:06:09来源:互联网 阅读 ()
gotoAndStop ("quizEnd");
} else {
gotoAndStop ("q" (userAnswers.length 1));
}
}
// *** Function to tally the user's score
function gradeUser() {
// Count how many questions were answered correctly.
// 开始改题,这里就不用再用上个版本的eval啦,那个东东实在是难懂兼难用,这个版本相对就很清楚明快
for (var j = 0; j < userAnswers.length; j ) {
if (userAnswers[j] == correctAnswers[j]) {
totalCorrect ;
}
}
// Show the user's score in a dynamic text field
displayTotal = totalCorrect;
}
电影的其他部分不用改变(这就是使用FUNTION的好处啦,升级多快~)
OK,进入下一章之前想想现在版本的点
* 题目,每次修改题目都要进入FLASH的场景修改,麻烦
* 按钮,每题就要做三个按钮
这都是麻烦的地方,我们要更精益求精地修改,让我们的多选题,轻易地从两题变成10题、100题
接下来我们要做的是
* 进一步改进我们存放数据的结构
* 让我们能够动态地生成每一道题目,只需输入数据,而无需在FLASH里面作就能够自动生成
所以――我们需要面向对象编程!(object oriented programming)
chocobo:嘻嘻,众菜鸟是不是都倒了,AS基础教程竟然开始讲OOP了,呵呵,没关系啊,上面的教程一直都这么浅,以后也深不了
第十一章 一点面向对象编程知识
At is heart, OOP simply means that you treat portions of your program as self-contained, but interrelating modules called objects.
这是什么呀?我不翻译了,概念的我们就先不懂吧,对象主要构成包括属性(properties)和方法(methods)
一个对象通常都以现实世界里的某个东东做蓝本
例如我们能够定义一个对象叫球
那么这个球将会有这样的属性:半径、X坐标、Y坐标、颜色
同时,也会用属于球自己的方法例如:移动球、计算球的面积
当然,我们还能够定义一些相对抽象的对象,例如我们要做的多选题
任何的对象都属于某类(class),类的意思其实是用于创建对象的模版
一个实例(instance)就是某一个类的特定某一个case(好复杂,概念性的东西我翻但是来啦,反正实例就类创建出来的某一个对象)
还是再举例吧
* 例如我们有个一个叫Chair的类
* 这个类定义了一个东西需要他有四条腿,一个坐垫
* 然后我们就能够用Chair这个类来定义我们的不同对象(可理解为椅子的款式),每个对象就有他特有的高、宽、材料、重量、颜色,正是这些属性使每个对象互相区别。
任何的椅子互相区别,有自己的属性,但是他们又有同样的结构:四条腿、一个坐垫
OK,那AS里面的类和对象呢?
是的,AS里我们能够自己创建对象,也有能够使用的内建对象
内建的类(您能够用他来创建对象)包括:Array, Boolean, Color, Date, MovieClip, Number, Object, Sound, String, XML, XMLSocket
内建的对象(已能够直接使用的对象)包括:Arguments, Key, Math, Mouse, Selection
内建的类、对象当然都是在FLASH里面有自己功能的东西。而正是这些功能很常用,FLASH才内建了这些类和对象,例如:
Mouse.hide(); // Hide the mouse pointer 将鼠标隐藏,您经常用吧?现在才知道其实是内建的Mouse对象的一个hide()方法吧?
在学习如何创建自己的类和对象之前,先来了解一下内建类和对象是怎样工作的吧
和数组的结构类似,对象是容器们(containers)的容器(container)
一个对象,用各个单独的属性来存放数据,只但是数组区分每个容器是用数字,而对象则是用属性名,要调用一个数组里面某个数据,我们需要他是索引值,而要调用对象的属性,则要知道属性名
看看以下这个例子,这是个叫BALL的对象“
BALL对象有两个属性:radius 和 color
而两个属性分别赋值为:50 和 0xFF0000 (这是AS里面表达16进制的方法)
概念清楚了,说一AS里面使用对象要注意的地方
首先,对象的属性很灵活,他储存的数据能够是strings(字符串), numbers(数字), booleans(布尔值), null(空), undefined(未定义), functions(函数), arrays(数组), movie clips(电影夹子), or even other objects(甚至是其他的对象,包括自定义的).
调用属性,可用点语法:objectName.propertyName
例如我们赋值给BALL里面的属性radius:
ball.radius = 100;
我们也能够用符号&#;来访问属性,但是&#;里面的属性名需用双引号扩住,同上例:
ball["radius"] = 100; (所以说数组也是对象一种,访问方法也相同,并没有搞特别化)
和点语法比较,&#;更灵活,能够动态地改变属性的名字,里面能够是变量或表达式,例如:
var propName = "radius";
ball[propName] = 100;
这点是点语法无法办到的
纯粹的OOP中,我们几乎不会直接访问对象的属性
我们一般都使用方法(methods) ,来改变属性
例如改变mySound这个声音对象的音量属性
AS的用法应该是mySound.getVolume(100);
而不是mySound.volume=100;
但是为了简单,多选题这个例子里不一定遵循这个原则,事实上AS里面很多对象都不能够办到这点,所以有人说AS不是面向对象语言。
关于对象的方法
标签:
版权申明:本站文章部分自网络,如有侵权,请联系: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
