Flash5制作实例-画魔四影

(04/29/2000)

  

 

 

FLASH5自推出以来,其ACTION增加了很多,也实现了面向对象编程,这里,我们简单用例子说明它的数组对象的应用。

制作步骤:

(1)新建一个FLASH5文件;

(2) 按组合键CTRL+M修改影片属性,WITDH为600,HEIGHT为350,BACKGROUND为黑色;

(3)用“TOOLS”工具箱的“RECTANGLE TOOL”和“ARROW”做4对“眼睛”,并按F8把它们转换成“BUTTON”,名称分别为1,2,3,4。(如图1)

(图1)

(4)按组合键CTRL+F8新建一个MOVIECLIP,命名为“TEXTOBJECT”,用“RECTANGLE TOOL”在场景中间画一个红色长方形,按F8转换成MOVIECLIP名称为“MASK”;按CTRL+I引出实例名称为“MASK”;

(5)新建一个层置于红色长方形所在层下方,接着用“TEXTTOOL”做一个“DYNAMICTEXT”(图2)的文本框,VIARABLE变量名称为NAME,字体选择黑体,颜色选择黑色。(TEXTOBJECT如图3)

(图2)

(图3)

(6) 按CTRL+E回到主场景,把“TEXTOBJECT”从用户库中拖放到界面下方,CTRL+I设定引出实例名称TO,选定它,按“CTRL+ALT+A”打开ACTION面板,并输入ACTION:

onClipEvent (load) {

  this.name = "请移动鼠标到他们的头像上...";

  this.mask._alpha = 100;

  lock = true;

}

onClipEvent (enterFrame) {

  if (not lock) {

  if (i<=60) {

  this.mask._alpha = i;

  i+=5;

  }

  } else {

  lock = true;

  i=0;

  }

}

当读取的时候,有3个初始化变量,NAME是显示文本的文本框变量,ALPHA是让TO下的MASK的ALPHA属性为最大,LOCK锁定变量为真,这表示不可以做下面的渐变循环,当每次进入这个帧,会检查LOCK变量的值,如果不是锁定状态,那么就让MASK的ALPHA属性按递增5的顺序增加,增加到60结束,然后恢复LOCK属性,并且让循环变量I请零,以待下次使用。

其实,这段ACTION也算是一个过程,供调用也可以,但这么做的好处就是可以及时相应用户事件。

(7) 在主场景第一帧按F6插入关键帧,双击当前帧输入ACTION:

namelist=new Array();

namelist=["笔惠","墨宝","纸鹰","砚而"];

这段语句创造了一个ARRAY数组对象NAMELIST,并且初始化4个数组变量,下标为0,1,2,3。

(8)依次选定MOVIE CLIP“1”、“2”、“3”、“4”按组合键“CTRL+ALT+A”输入ACTION:

1:

on (rollOver) {

  if (_root.to.lock) {

  _root.to.name = "大家好,我的名字是"add namelist[0] add ",请多关照。";

  _root.to.lock = false;

  }

}

on (rollOut) {

  _root.to.name = "请移动鼠标到他们的头像上...";

  _root.to.lock = true;

}

2:

on (rollOver) {

  if (_root.to.lock) {

  _root.to.name = namelist[1] add "就是我...";

  _root.to.lock = false;

  }

}

on (rollOut) {

  _root.to.name = "请移动鼠标到他们的头像上...";

  _root.to.lock = true;

}

3:

on (rollOver) {

  if (_root.to.lock) {

  _root.to.name = "画魔大人的影子——" add namelist[2];

  _root.to.lock = false;

  }

}

on (rollOut) {

  _root.to.name = "请移动鼠标到他们的头像上...";

  _root.to.lock = true;

}

4:

on (rollOver) {

  if (_root.to.lock) {

  _root.to.name = namelist[3] add ",知道我的名字的人都得死!";

  _root.to.lock = false;

  }

}

on (rollOut) {

  _root.to.name = "请移动鼠标到他们的头像上...";

  _root.to.lock = true;

}

每当鼠标移动到它们的上方并且TO下的LOCK为真的时候就会激活ACTION,通过访问ARRAY对象的内容而得到它们的名字,并用NAME文本框显示出来,而当从上方移开的时候就会恢复文本框内容并且让LOCK锁定,最后请注意,数组下标访问值得注意的是一定要从“0”下标开始。