Flash AS 入门教程 事件处理函数及画线语句
Flash AS 入门教程 事件处理函数及画线语句
发布时间:2016-12-21 来源:查字典编辑
摘要:我们学过在按扭或者影片剪辑上添加事件,这些事件也可以很方便地写在帧上,使用起来比较方便,有时也能起到简化脚本的作用。这些写在帧上的事件在软件...

我们学过在按扭或者影片剪辑上添加事件,这些事件也可以很方便地写在帧上,使用起来比较方便,有时也能起到简化脚本的作用。这些写在帧上的事件在软件中是位置是“内置类影片MovieClip事件”。

Flash AS 入门教程 事件处理函数及画线语句1

源文件下载

一、 flash 2004提供了18个事件,我们在这里主要介绍Button.onRelease和MovieClip.onEnterFrame这两个件的用法。

1、Button.onRelease的用法:

复制代码代码如下:

my_btn.onRelease = function() {

// 此处是您的语句

}

这里my_btn是按扭的实例名。当按下并松开按钮时调用。注意,这里的事件都是以函数形式表示的,因此,我们可以叫做事件处理函数

2、MovieClip.onEnterFrame的用法:

复制代码代码如下:

my_mc.onEnterFrame = function() {

// 此处是您的语句

}

这里my_mc是影片剪辑的实例名。这个事件处理函数以 SWF 文件的帧频持续调用,这个函数的作用和在mc上写的事件onClipEvent (enterFrame)类同,但是,使用起来更方便更有效。

从用法中可以知道,必须定义一个在调用事件处理时执行的函数。我们看一个实际例子。

例 3.2.1

前一节的例2中我们在“控制”按钮、“小松鼠”影片剪辑或者“小球”影片剪辑上按下鼠标时,调用自定义函数,使小松鼠和小球分别按照相反的方向运动。现在我们把这三个事件改为写在帧上的事件函数:

复制代码代码如下:

function yd() {

gotoAndPlay(1);

qiu_mc.gotoAndPlay(31);

}

shu_mc.onPress = function() {

yd();

};

qiu_mc.onPress = function() {

yd();

};

my_btn.onPress = function() {

yd();

};

这里另加了一个lqiu_mc,在帧上调用MovieClip.onEnterFrame,使这个小球在场景来会运动。

复制代码代码如下:

lqiu_mc.onEnterFrame = function() {//调用MovieClip.onEnterFrame事件函数,

this._x += 10; //lqiu_mc的横坐标每次增加10;

web=this._x //在文本web中显示lqiu_mc的横坐标;

if (this._x>430) { //当lqiu_mc的横坐标大于430时;

this._x = 20; //让lqiu_mc的横坐标为20;

}

};

Flash AS 入门教程 事件处理函数及画线语句2

点击查看动画效果<

这里我们可以看到,写在帧上的MovieClip.onEnterFrame和写在mc上的onClipEvent (enterFrame)可以起到完全相同的作用。并且,我们还可以在调用MovieClip.onEnterFrame事件函数时可以随时删去这个事件,以减少内存的占用。例如在上面的事件函数时,我们可以改

复制代码代码如下:

if (this._x>430) {

this._x = 20;

}为:

if (this._x>430) {

delete this.onEnterFrame

}

那么,这个事件被删除,小球停止运动。

二、画正玄图象

1、新知识点:

(1)my_mc.createEmptyMovieClip(instanceName, depth)

创建作为现有影片剪辑(my_mc)子级的空影片剪辑;

instanceName:创建的子级影片剪辑的名称;

depth:创建的子级影片剪辑的名称.

(2)my_mc.lineStyle(线条宽度,线条颜色,线条透明度);

my_mc.moveTo(起点横坐标, 起点纵坐标);

my_mc.lineTo(终点横坐标, 终点纵坐标);

(3)正玄函数

y=sin(x)

其中y为-1到1之间。

2、例3.2.2 源程序脚本:(都写在场景的第1帧)

Flash AS 入门教程 事件处理函数及画线语句2

点击查看动画效果<

复制代码代码如下:

i = 0; //变量初始化;

createEmptyMovieClip("mc", 5);//在主时间轴下创建影片mc,深度为1

with (mc) { //下面几条都是对mc的操作

lineStyle(2, 0x00ff00, 100);//画线条的宽度为2,色彩为绿色,透明度为100

moveTo(100, 50); //画竖线的起点横坐标100,纵坐标50

lineTo(100, 300); //画竖线的终点横坐标100,纵坐标300;

moveTo(50, 200); //画横线的起点横坐标50,纵坐标200

lineTo(480, 200); //画横线的终点横坐标480,纵坐标200

moveTo(100, 200); //画正玄的起点

lineStyle(1, 0xff0000, 100);//正玄线的宽度为1,色彩为红色,透明度为100

}

onEnterFrame = function () {//执行主时间轴下的事件处理函数

x = 100+i; //横轴表示角度,这里i为角度变化。计算正玄函数的横坐标;100是坐标原点横坐标

y = 200-100*Math.sin(i*Math.PI/180);//计算正玄的纵坐标;

mc.lineTo(x, y); //正玄线的下一点的坐标

i++;

if (i>=360) { //正玄函数的一个周期360度

delete onEnterFrame;//删去这个事件处理函数

}

};

3 作业:

A :把上面的画正玄函数改动为:

(1)坐标原点为(100,100);

(2)函数高度为50;

(3)每隔5度画一点。

B: (选作)把上面的画正玄函数改动为:正玄图象起点的横坐标、震幅、跨度由输入文本控制如下图的形式

Flash AS 入门教程 事件处理函数及画线语句2

点击查看动画效果<

Flash AS 入门教程 事件处理函数及画线语句3

查看全套"Flash AS 高级教程"

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Flash教程学习
热门Flash教程学习
网页设计子分类