2007/01/30 | Flash函数的几种形式
类别(Flash课件设计) | 评论(0) | 阅读(906) | 发表于 11:46

在Flash 的帮助文档中,将Flash函数划分了大致有六七种之多,本质上讲,只是将函数在不同的位置上,用不同的写法来表现而已,就好比汉字有宋体、黑体、隶书体等。对它进行一下了解,可以帮助你更好的理解函数。

函数的标准形式:
function myCircle(radius:Number):Number {
return (Math.PI * radius * radius);
}
trace(myCircle(5));
函数和变量一样具有不同的类型。通过明确的指定,可以提高代码的可读性。

方法和函数是一些可以在 SWF 文件中的任意位置重复使用的 ActionScript 代码块。
如果将值作为参数传递给函数,则函数就可以使用提供的值进行计算。如果传递的参数多于函数的需要,该函数将忽略多余的值。如果没有传递必需的参数,则函数将为空的参数指定 undefined数据类型。

属于一个类的函数称作该类的方法。

在应用程序中可以使用多种类型的函数,其中包括内置函数、命名函数和用户定义的函数、匿名函数、回调函数、构造函数和函数文本。

还可以在 ActionScript 类文件中编写函数。可以在脚本中把这些函数作为方法使用。

对函数进行引用时,省略函数名后的圆括号。执行个函数时,则需要在函数名称后面带上圆括号。

若要调用函数,该函数定义必须位于播放头所到达的帧中。

命名函数的标准格式如下所示:
function functionName(parameters) {
// 函数块
}
这一代码段包含以下部分:
■ functionName 是函数的唯一名称。文档中所有函数的名称都必须唯一。
■ parameters 包含您将传递给该函数的一个或多个参数。参数有时被称作参量。
■ // 函数块 包含由函数执行的所有 ActionScript 代码,将需要执行的代码放在这里。

编写匿名函数和回调函数
命名函数是可在定义之前或定义之后被脚本引用的函数,而匿名函数 则是引用自身的未命名函数;匿名函数在创建时便被引用。
在使用事件处理程序时通常要使用匿名函数。若要编写匿名函数,您需要将函数文本存储在变量中。这样,您就可以在后面的代码中引用此函数。
在对象(如 XML 或 LoadVars 实例)内创建的,与特定的事件关联的匿名函数,称为回调函数。实例将在特定事件发生后调用回调函数。
回调函数的特点是:特定事件发生后系统自动调用。

关于函数文本
函数文本 是一种您可以用表达式(而不是语句)声明的未命名函数。
下面的代码就将函数文本作为表达式使用:
var yourName:String = "Ester";
setInterval(function() {trace(yourName);}, 200);
函数文本的特点是:当次有效,过后消失。

关于构造函数
类的构造函数是一种特殊的函数,在使用 new 关键字创建类的实例时会自动调用这种函数。构造函数的名称与包含它的类的名称相同。
一个类只可以包含一个构造函数;ActionScript 2.0 中不允许重载构造函数。还有,构造函数不能具有返回类型。
构造函数的特点是:当类进行实例化时,会自动执行一次。

定义全局函数和时间轴函数
可以使用 _global 标识符声明一个全局函数,该函数无需使用目标路径即可从所有时间轴和作用域中进行调用。
可以使用目标路径从任何时间轴调用任何时间轴中的函数,包括从加载的 SWF 文件的时间
轴中进行调用。若要调用函数,请输入函数名称的目标路径,并在必要时,在括号内传递所有必需的参数。
trace( this._parent == _parent );

函数命名
函数名称应该以小写字母开头。函数名称应描述该函数返回的值(如果有)。

在使用 ActionScript 2.0 时,还可以如下例所示将函数放在类文件中:
class Circle {
public function area(radius:Number):Number {
return (Math.PI * Math.pow(radius, 2));
}
public function perimeter(radius:Number):Number {
return (2 * Math.PI * radius);
}
public function diameter(radius:Number):Number {
return (radius * 2);
}
}

在函数中使用变量
函数中的本地变量的调用范围限定为函数体,在该函
数退出后,本地变量也将不再存在。Flash 也将任何传递给函数的参数视为本地变量。

将数组做为参数传递给函数时,函数调用结束后,数组依旧存在,但对数组的引用对象将消失。 例如:
function checkArray( a:Array ):Void{
trace( a.length);
}
var m_array:Array = [1,2,3,4,5];
checkArray( m_array );
trace( a );
// a 不存在了,但 m_array 依旧存在。

将参数传递给函数
在调用函数时,应始终传递指定数量的参数,除非函数能够检查未定义的值,并设置相应的默认值。如果缺少某些参数,Flash 便将其值设置为 undefined。
每个参数之间都用逗号分隔符分开。

从函数中返回值
使用 return 语句可以从函数中返回值。
在函数中使用 return 语句时应遵守以下规则:
■ 如果为函数指定 Void 之外的其它返回类型,则必须在函数中加入一条 return 语句,并且其后必须跟返回的值。
■ 如果将返回类型指定为 Void,则不必加入 return 语句,但是如果需要加入,则其后不可以跟任何值。
■ 无论返回类型如何,都可以使用 return 语句从函数中间退出。
■ 如果不指定返回类型,则可以选择是否加入 return 语句。

关于嵌套函数
可以从另外一个函数内调用函数,称为嵌套函数。

关于递归函数
可以从一个函数内调用函数自身,称为递归函数。
递归函数的特点:必须具有递归结束条件,调用的次数通常不明确。

例如:使用递归计算一个数的阶乘:
function multiNum(n:Number) {
 if (n <= 1) {
  return 1;
 } else {
  return n * multiNum(n - 1);
 }
}
trace(multiNum(4));

了解方法
方法是与类关联的函数。

方法命名
应使用动词给方法命名,用混合大小写标明连接在一起的单词,并确保第一个字母为小写

0

评论Comments