频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发工具应用教程 -> Flash教程 -> 《 Essential ActionScript 2.0 》中文精华版 第 11 期

《 Essential ActionScript 2.0 》中文精华版 第 11 期

作者:未知  来源:转载  发布时间:2005-8-16 20:11:39  发布人:acx

减小字体 增大字体


4.4 Methods (方法)

方法method就是一些函数,而这些函数决定了该类的行为。它们来执行那些类实例或者类本身可能需要完成的的任务。例如,Actionscript的内建类Sound类有一个名为loadSound( )的方法,该方法可以得到外部MP3文件以便在Flash Player中播放。

为了给类定义方法,我们在类体定义中使用function语句,如下所示:


class ClassName {
function methodName (param1:type, param2:type,...paramn:type):returnType {
statements
}
}
其中methodName 称为该方法的标识符identifier
param1:type, param2:type, ...paramn:type 是该方法的参数列表;
returnType 是该方法返回值的数据类型;
statements 是当该方法被调用时的被执行零个或多个语句。
每个参数定义由一个参数名(param1),一个冒号(:)和一个用于指示参数数据类型的类型标识符(type)组成。

比较:在Actionscript 1.0中定义方法的方式。(略之)

在一个方法内部,可以通过参数名直接引用参数。例如,以下方法square( ),定义了一个参数x,并在方法内如直接引用:


function square (x:Number):Number {
return x * x;
}
如果在该方法定义中省略参数类型,那么对于该参数将不执行类型检查(允许该参数接受任何数据类型的值)。同理,若省略返回值类型,则对于返回值将不执行类型检查。然而,如果一个方法没有返回值,那么其类型应该设置为Void(用大写V)来表明该方法没有返回值。

提示:用Void表示返回值类型时必须用大写V。(略之)

如果你的方法的返回值类型是Void,那么要保证确实没有返回任何值。当一个方法指定返回值类型是Void但返回了一个值时,那么在编译时输出面板会出现以下错误:

返回类型为 Void 的函数不能有返回值。

在多数情况下,以上错误是一个有用的调试工具。这意味着,你可能设计该方法没有返回值但是偏离了原始设计,在执行该方法时返回了一个值。如果发生了这种情况,你应该任选以下做法:

? 改变你的设计以便可以反映方法的返回值类型(即,在方法声明中指定正确的返回值数据类型)

? 改变你的方法,让它不返回任何值,从而坚持你的原始设计(即,Void仍是正确的返回值数据类型)

相反地,当一个方法指定了某个返回值类型而非Void但返回了一个类型与指定类型不匹配的值时,编译器将产生以下错误:

返回的表达式必须与函数的返回类型相匹配。

而且,当一个方法指定了某个返回值类型而非Void但未包含return语句时,编译器将产生以下错误:

此函数中需要返回语句。

可见,只有参数和返回值类型与指定类型相一致时,你的方法才能顺利通过编译。

理论已经够多了。让我们来看一个例子,为我们的Box类添加一个getArea( )方法:


class Box {
private var width:Number = 0;
private var height:Number = 0;

// 这里是方法定义
function getArea ( ):Number {
return width * height;
}
}
getArea( )
方法定义以function关键字开始,随后是方法名getAreagetArea( )方法没有参数,因此参数列表是一对空的小括号( ):Number表明了getArea( )方法将返回一个Number类型的值。当调用getArea( )方法时,将返回widthheight的结果,这将是一个数字值(与声明的一致)。

我们的方法定义的最后一部分是声明块,封闭在一对的花括号内:


{
return width * height;
}
注意,我们通过属性名直接引用属性widthheight。在一个方法内部,可以直接引用属性,无需引用任何一个对象(这种情况下是实例属性)或一个类(这种情况下是类属性)来限定。

在一个方法定义中,方法标识signature——由方法名和参数列表组成——使该方法区别于一个类中所有其他的方法。在一些语言中(最明显就是Java),如果方法标识不同于其他方法,那么该方法就被认为是完全不同于所有其他方法的。在Java中,因此两个方法可能具有完全相同的名字以及完全相同的参数数量,但是由于一个方法的第一个参数的数据类型与另一个方法的第一个参数的数据类型不同,它们就被认为是不同的。在Java中,那些具有相同的名字但不同的标识的方法被称为重载overloaded方法。Actionscript不支持方法重载。当一个类中的两个方法重名时,编译器将产生以下错误:

同一成员名称不能重复使用一次以上。

对于我们的getArea( )方法,getArea( )是方法的标识。数据类型:Number不属于标识的一部分。

回到我们的getArea( ) 方法,你还可以按照以下风格书写代码:


function getArea ( ):Number
{
return width * height;
}
但是,本书中将使用前面那种书写风格,如下所示:

function getArea ( ):Number {
return width * height;
}
两种风格都可以用的,根据你的喜好自己选择吧!

将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 让你轻松架设FTP服务器1..
· 注册码大全三
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 让你轻松架设FTP服务器5..
· 风景图片8
· 注册码大全九
· 让你轻松架设FTP服务器2..
关注此文读者还看过
· 浅谈在ASP.NET中数据有效..
· 入门:充分利用Dreamwea..
· 利用ASP实现对表的分页浏..
· 利用 WSH 作定时工作流程..
· 使用MySQL内建复制功能来..
· Flash加载外部文件(5)..
· 周韶宁反驳马云 称互联网..
· 影随鼠动的Flash文字动画..
· ASP 连接执行程序
· 网上开店新模式 ECShop网..
· 小组开发环境搭建(四)..
· Java 中对文件的读写操作..
· 利用FreeHand和Flash制作..
· as2.0内置类创建实例的命..
· google开始可以抓取框架..
· 《大话李白》的创作全过..
相关文章
· JScript 方法 - escape 方法..
· 《 Essential ActionScript..
· 《 Essential ActionScript..
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
粤ICP备05092265号