快速业务通道

flash action 由浅入深之一

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-10
类和对象之前,先来了解一下内建类和对象是怎样工作的吧 与数组的结构类似,对象是容器们(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不是面向对象语言。 关于对象的方法
方法method其实是一些附属于对象的函数,其作用主要是访问对象中的数据,或完成某种功能
所以调用方法和调用普通函数类似:objectName.methodName() 只是前面加上了对象的名字
例如上面的BALL对象,我们需要它的面积,使用 getArea 这个方法:
ball.getArea(); 预习一下,在下一个例子中,虽然MOOCK不打算建立自己的方法,但是将使用内建于MovieClip对象的两个方法:
*MovieClip.attachMovie()
此方法是将Library(CTRL+L按出来的那个)里面的symbol复制一个instance到场景中
(chocobo:给不懂概念的人紧急补习,放在库(Library)里面的叫符号(symbol),拉到场景中就叫实例(instance),一个符号可创建多个实例,符号改变则实例随之改变)
与之类似的是MovieClip.duplicateMovieClip(),但是该方法需要事先在场景里已经有一个实例 *MovieClip.removeMovieClip()
此方法与上面相反,是删除场景里面的instance的 大家看到了,在下一例中,我们将使用MovieClip这个内建对象,因为它就可以满足我们的需要,不必新类型的对象了
我们先来熟悉一下MC这种对象 它有很多属性_height(高度)、 _alpha (透明度),MC的属性大家可以在AS字典里面查到,在AS面板里这写属性也是变色显示的
同时MC的方法,例如 MC.play(); 等也可以查到
当我们在MC里面的时间线使用这些属性、方法的时候,可以省略不写前面部分,直接写play();
MC可以互相嵌套,MC当中又有MC,就出现类似: mc1.mc2.play(); 的情况
为了调用包含自己的上一级MC的方法、属性,AS里面用_parent,例如:
在mc1包含mc2 ,在mc2中想使mc1播放:_parent.play();
还有另一个保留字:_root指代该电影的主时间线
例如想在某个mc里面让整个电影播放:_root.play();
想在某个MC中让另一mc1播放:_root.mc1.play(); 还有,MC中定义的变量,将作为MC的一个属性可被访问
在mc1里面写了一句 var a=1;
我们将可使用 mc1.var来调用它
关于类(class)
这个概念大家

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号