Flash5ActionScript教程 三十九


b>使用预定义对象

  使用Flash的预定义对象可以访问某些种类的信息(如系统的日期和时间信息)。大多数预定义对象都拥有一些方法(分配对象的函数),可以通过调用这些方法,让其返回一个值或执行一种动作。例如,日期对象(Date)从系统时钟返回信息,声音对象(Sound)可以控制动画中的声音元素。

  有些预定义对象拥有一些属性,你可以读取这些属性的值。例如,按键对象(Key) 拥有代表键盘按键的常数。每个对象都有自己的特点和能力,可以在动画中使用。

下面列出的是Flash的预定义对象:
Array
Boolean
Color
Date
Key
Math
MovieClip
Number
Object
Selection
Sound
String
XML
XMLSocket

  电影剪辑实例用ActionScript对象表示,你可以象调用其它ActionScript对象的方法一样调用预定义电影剪辑的方法。
  要了解每个对象的详细信息,请参阅ActionScript词典中它们各自的词条。

一、创建对象

  有两种方法创建对象:使用new操作符和对象初始化操作符({})。 可以用new操作符,从预定义对象类或自定义对象类创建对象。 也可以用对象初始化操作符创建类形式对象。

  要使用new操作符创建对象,需要结合构造函数来使用它。构造函数是这样一种函数,它特有的作用是创建某种类型的对象。ActionScript的预定义对象是预先写好的构造函数。创建新对象就是实例化或创建预定义对象的副本,并给它分配该预定义对象的所有属性和方法。这类似于从库中把一个电影剪辑拖到动画的编辑区中。例如,下面的语句实例化日期对象:
currentDate = new Date
  可以在不实例化的情况下访问某些预定义对象的方法。例如,下面的语句调用数学对象的random方法:
Math.random();
需要使用构造函数的每一个对象,在动作面板的工具箱中都有对应的元素,如new Color、 new Date、 new String等等。

在正常模式动作面板中使用new操作符创建对象的基本步骤
1 选择setVariable。
2 在Variable(变量)域中输入标识符。
3 在Value(值)域中输入输入new Objectnew Color等。在圆括号中输入构造函数要求的参数。
4 勾选值域(Value)的表达式复选框(Expression)。

如果不勾选表达式复选框,输入的值将被作为字符常量来处理。

在下面的代码中,从构造函数Color创建对象 c : c

= new Color(this);

  注:对象名是一种被赋给对象数据类型的变量。

在正常模动作面板中使用对象初始化操作符({})创建对象的基本步骤
1 选择setVariable动作。
2 在Variable(变量)域输入新对象的名字。
3 在值(Value)域中输入初始化操作符{},在初始化操作符中输入属性名和值,二者之间用冒号分隔。如果有多个属性,属性与属性之间用逗号分隔。

  例如,在下面的语句中,属性名是radiusarea,它们的值分别是5和表达式的值:

myCircle = {radius: 5, area:(pi * radius * radius)};

  语句中的圆括号使括号内的表达式得到计算。返回值是变量area的值。

  也可以嵌套数组和对象初始化,如下面的语句:
newObject = {name: "John Smith", projects: ["Flash", "Dreamweaver"]};

  要了解每个对象的详细信息,请参阅ActionScript词典中它们各自的词条。

二、访问对象属性

  使用点操作符 (.) 访问对象属性的值。对象名在点的左边,属性名在点的右边。 例如,在下面的语句中,myObject是对象,name是它的属性。

myObject.name

   要在正常模式给属性赋值,使用setVariable动作:

myObject.name = "Allen";

  要改变属性的值,只需赋给属性新的值,如下所示:
myObject.name = "Homer";
  也可以使用数组访问操作符 ([]) 访问对象的属性,请参阅点和数组访问操作符。

三、调用对象方法

  调用对象的方法使用点操作符,后接方法。例如,下例调用声音对象Sound的setVolume方法
s = new Sound(this);
s.setVolume(50); 在正常模式调用预定义对象的方法,使用evaluate动作。

四、使用电影剪辑对象

  可以使用预定义电影剪辑对象的方法来控制编辑区电影剪辑图符的实例。下例播放实例dateCounter
dateCounter.play();
  要了解电影剪辑的详细信息,请参阅ActionScript词典中关于电影剪辑的词条。

五、使用数组对象

  数组对象是常用的预定义ActionScript对象,它存储自己的数据在编号属性而不是命名属性中。 一个数组元素名被称为指数(index)。这在存储和检索某种类型的信息方面是很有用的,例如学生列表或游戏中的移动序列。

  你可以象给对象的属性赋值那样给数组对象的元素赋值:
move[1] = "a2a4";
move[2] = "h7h5";
move[3] = "b1c3";
...
move[100] = "e3e4";
  要访问该数组的第二个元素,使用表达式 move[2]

  数组对象有一个预定义的长度属性(length) ,这是数组元素数的值。当数组对象的元素被赋值时,该元素的指数是一个正整数。这样,index $#@62;= length, length自动更新为index + 1。