flash 脚本3

3、FLASH脚本-绘图及颜色的AS的编写、声音 AS 的编写与控制、时间日期的 AS编写    七、绘图及颜色的AS的编写
 
在使用 flash 的过程中,难免会进行绘图的操作。除了用工具面板上的工具绘制图形之外,
我们也可以使用 ActionScript 来绘制图形。
如何绘制线段及命令解释
lineStyle(粗细,颜色,透明度) //设置绘制图形的线条粗细、颜色和透明度
Moveto(X坐标,Y坐标) //设置绘图线条的起点坐标
lineto(X坐标,Y坐标) //设置线条的结束坐标
现在就用刚才的三个命令在舞台上绘制出来一个300*100大小的矩形。
步骤:
1、新建立一个 flash文档。
2、既然要绘制一个300*100大小的矩形, 我们就要先确定矩形4个顶点的坐标,
然后就可以使用 lineto命令进行编写了。
3、选中时间轴的第一桢,打开动作面板。现在已经确定了矩形的4个顶点,那么我
们就可以来编写脚本命令了,请输入以下脚本:
_root.lineStyle(1, 0x000000, 100);//设置线条的粗细,颜色和透明度
_root.moveTo(50, 50);//设置开始点的坐标。
_root.lineTo(350, 50);
_root.lineTo(350, 150);
_root.lineTo(50, 150);
_root.lineTo(50, 50); //设置结束点坐标,整个矩形绘制完毕
相信大家通过上面的命令就很容易的用AS绘制出所需要的形状,充分发挥你的想象
力,可以通过 lineto命令来设置多个点,从而创造出各种各样的形状。
熟悉了绘制线条的命令之后我们来用一个例子加深印象。
操作步骤:
1、新建立一个 flash 文档,在舞台上绘制一个圆,选中它并按F8转换成影片剪辑,
起名为:圆 。
2、打开库面板,请将影片剪辑“圆”在舞台上再拖放一个实例,使舞台上存在两个圆的
实例。
3、现在为舞台上两个实例分别起名字为 a和 b
4、选中时间轴第一桢,打开动作面板,输入以下脚本:
function draw() { //自己定义一个函数,这个函数起名为 draw(可自定),函数的功能是要实
现以 a 实例的坐标为起点,向 b 实例绘制线条。
_root.hkear();//清除舞台上绘制的线条。
_root.lineStyle(1, 0x000000, 90);//设置线条的粗细,颜色和透明度。
_root.moveTo(a._x, a._y);//以 a实例的坐标为起点开始绘制线条。
_root.lineTo(b._x, b._y);//以 b 实例的坐标为绘制线条的结束点。
}
draw();//执行函数 draw,它将会在a 与 b 之间绘制出一条黑色的线条。
解释:为了减轻编写AS的工作量和程序的重复率,可以将某些功能定义为一个函数,
例如上面的 draw(),在使用的时候,直接执行定义过的函数,就可以完成函数的功能。
5、现在创建拖动效果,选中舞台上的 b 实例,打开动作面板,输入以下脚本:
on (press) {
//点击此实例,开始拖动
this.startDrag(true);
}
on (release) {
//释放鼠标,停止拖动
this.stopDrag();
}
onClipEvent (mouseMove) { //当鼠标移动,也就是这个 b 实例移动的时候,就执行里面的程
序。
_root.draw();//执行舞台上定义过的 draw()函数,开始在 a 与 b之间绘制线条。
updateAfterEvent();//强制更新画面,是整个动画更加流畅。
}
按 Ctrl+回车测试动画效果。
二、颜色命令讲解
setRGB() 用来设置实例的颜色值,注意,这个值用16进制表示,例如 0x000000
(黑色)
getRBG() 获取实例的颜色值
下面用一个相对简单的例子来说明颜色命令的使用以及如何填充颜色
要想使用颜色命令,我们必须先构建一个 Color 对象。方法就是 自定义名字 = new
Color("要改变颜色的对象"),构建完 color 对象之后,我们就能使用 setRGB 或 getRGB 来设
置或获取颜色了。
步骤:
1、新建立一 flash文档,背景大小为550*400
2、选中时间轴第一桢,打开动作面板,我们现在要用AS来帮助我们创建一个影片剪
辑的实例。所用到的命令为:
createEmptyMovieClip("实例名称",深度)。创建一个影片剪辑实例,并起名为 hk。输入下面
脚本。
_root.createEmptyMovieClip("hk", 1);
//使用创建命令在舞台上创建一个名字叫 hk的影片剪辑实例,深度为 1
接下来我们要对这个 hk 实例进行绘制图形和填充图形!现在我们用AS绘制一个30
0*100大小的矩形,并且把这个矩形填充为黑色,脚本如下:
with (hk) {
//使用 with命令设置 hk的各个属性
beginFill(0x000000, 85);
//开始填充这个 hk实例,颜色为黑色,透明度为 85
lineStyle(1, 0x999999, 100);
//设置这个实例的边框粗细为 1,颜色为灰色,透明度为 100
moveTo(50, 50);
//设置绘制线条的起点坐标
lineTo(350, 50);
lineTo(350, 150);
lineTo(50, 150);
lineTo(50, 50);
//结束绘制,将在舞台上绘制出一个 300*100 大小的矩形。
endFill();
//结束填充,与 beginFill()命令对应。
}
OK,现在我们就已经创建了一个黑色的矩形。现在我们要继续实现变色的功能,也就
是当鼠标移动的时候,这个矩形会随机变换颜色!就需要用到我们的构建 Color 对象的命令
了。脚本如下:
_root.onMouseMove = function() {//当鼠标移动的时候就执行下面的脚本命令。
hk_color = new Color("hk");//构建一个名字叫 hk_color 的 Color 对象。
yanse = "0x"+random(100)+random(100)+random(100);//用一个变量 yanse来获取一个数值,
这个数值就是颜色值
hk_color.setRGB(yanse);//设置矩形的颜色。
};
好了,这个例子是完全由脚本编写而成,所有脚本都在时间轴的第一桢
3、按 Ctrl+回车来测试你的影片吧~会看到矩形会随着鼠标的移动而不断进行颜色变化。
       八、声音 AS 的编写与控制
一个好的 flash作品,缺少了声音,就如同人不会讲话一样。而 flash
中对声音的支持也非常不错,除了可以使用时间轴放置声音文件之
外,我们还可以使用AS来更加准确的控制声音!
一、FLASH 中如何创建声音控件
如果想控制动画中的声音,我们可以使用 flash中的 sound 对象,
通过 sound 命令创建一个新的 sound 对象。之后再用 attachSound 命
令连接到库里的声音,就可以用来控制动画中的声音了。
常用命令讲解:
new Sound() 此命令用来创建一个新的 sound 对象,有了
sound 对象我们才能用AS来控制声音。
attachSound("库中的声音") 此命令可以使我们创建的声
音对象连接到库里的声音,以便进行控制。
start([从第几秒开始播放, 循环次数]) 此命令可以是
声音开始播放,里面的两个参数是可选的。
stop() 停止声音的播放。
setVolume(音量级别) 此命令可以控制声音的音量高低,
音量级别只能是从0-100之间的数字。
现在我们也应该用AS先做一个简单的小例子了。
二、创建一个简单的声音播放动画,可以实现简单的开始与停止
播放声音。
操作步骤:
1、新建一个 flash文档,按 Ctrl+R(文件\导入)导入一个声音
文件,声音文件可以是 MP3 或 WAV 格式的。声音文件导入之后,在
舞台上是看不见的,必须打开库才能看到我们导入的声音。
2、 选中库中的声音文件, 单击鼠标右键, 在弹出的菜单中选择“链
接...”将会弹出一个链接的对话框,请勾选“为动作脚本导出”和“在第
一帧导出”选项,并输入一个标识符:mysound (名字可任意写),
单击确定。
3、回到主舞台,选中时间轴的第一桢,按F9打开动作面板。现
在我们要创建一个新的声音对象,并且连接到库里的声音。用来控制
声音。输入以下脚本:
music = new Sound();//创建一个名字叫 music 的声音对象。
music.attachSound("mysound");//将这个声音对象与库里的标识符为
“mysound”的声音连接。
4、现在需要在舞台上放置两个按钮分别控制声音的播放与停止。
5、此时,舞台上将有播放和停止两个按钮,选中 Play按钮,打开
动作面板,输入以下脚本:
on (release) {
music.start();
}//播放声音
选中 Stop 按钮,输入以下脚本:
on (release) {
music.stop();
}//停止播放声音
6、OK,一个简单的控制声音播放与停止的例子就完成了,快
按 Ctrl+回车来测试吧。
三、创建一个稍微复杂的例子,用来滑动按钮来控制声音的音量。
操作步骤:
1、新建一个 flash文档,并按 Ctrl+R 导入一个声音文件。
2、参照上个例子,打开库,并把导入的声音文件设置一个链界
标识符。这里设置标识符为“mysound”。
3、选中舞台时间轴第一桢,打开动作面板,创建一个新的声音
对象,连接库中声音,并播放这个声音。输入脚本如下:
music = new Sound();
music.attachSound("mysound");
music.start(1, 10);//播放声音,从第一秒开始播放,并循环10次
4、现在需要一个按钮做为滑动按钮,用来控制声音的音量!按
钮可以自己制作或使用公用库中的按钮, 此例中我使用公用库中的按
钮。请在舞台适当位置放置一个按钮实例。
5、选中按钮,打开动作面板输入以下脚本:
on (press) {
this.startDrag(false, left, top, right, bottom);//开始拖动这个按钮, 并且要
规定它的拖动范围,分别由四个变量控制,4个变量的初始值稍后设
置。
drag = true;//用一个变量来判断这个按钮是否被拖动了。如果它被拖
动了,变量值为 true(真)
}
on (release, releaseOutside) {
this.stopDrag();//当松开按钮或在按钮外部松开,就停止拖动。并且下
面的 drag 变量为假,表示按钮没有被拖动。
drag = false;
}
6、再次选中这个按钮,并按F8键将它转换成一个影片剪辑!起
名为:控制音量。也就是“控制音量”这个影片剪辑里面包含了刚才的
按钮。
7、选中舞台上这个控制音量影片剪辑的实例,打开动作面板,
现在要设置拖动范围的4个初始值和设置音量大小控制。 请输入以下
脚本:
onClipEvent (load) {//当这个 flash 动画一开始,就设置下面4个变量
的初始值。为了使按钮只能上下拖动,所以,拖动范围的左、右都固
定!只能让按钮在上下100象素以内拖动。
top = _y;
left = _x;
right = _x;
bottom = _y+100;
}
onClipEvent (enterFrame) {
if (drag == true) {//如果按钮被拖动了,就开始执行下面的设置音量的
算法,用来控制音量。
_root.music.setVolume(100-(_y-top));//设置音量大小,比较难理解的是
里面的算法:100-(_y-top),通过代入数字来帮助我们理解,如果_y
的值是100,我们的 top 值也是固定的为100。当拖动按钮往下
时,_y值就会变大,比如变为130,那么_y-top 就等于30了,在
用 100-30 就等于70,这个70就是音量的级别了。伴随着按钮越
往下拖,音量级就会变的越小,那么也就实现音量的控制了。
}
}
通过以上两个例子,应该要掌握的就是创建 sound 对象播放、停止
声音,以及控制声音的方法。
       九、时间日期的 AS编写
一、日期时间的基本命令及解释
getFullYear() 按照本地时间返回 4 位数字的年份数。
getMonth() 按照本地时间返回月份数。
getDate() 按照本地时间返回某天是当月的第几天。
getHours() 按照本地时间返回小时值。
getMinutes() 按照本地时间返回分钟值。
getSeconds() 按照本地时间返回秒数。
以上命令并不是很难理解,都是获取本地机器上日期及时间。但是要使用这些命令,我
们必须先用 Date 对象的构造函数创建一个 Date 对象的实例。然后,就可以用创建的这个
实例来进行操作!命令格式如下:
实例名=new Date()
二、显示日期及做一个走动的表
下面我们通过一个例子来介绍 Date对象的各种命令使用方法。
步骤:
1、新建立一 flash 文档,将层1改名为:文字显示,并在舞台下方绘制出一个动态文
本框,起一个变量名:mytime
2、新建立一个层,并把这个新建立的层起名为:表盘,然后使用绘图工具在舞台上绘制出
一个不带分针、时针和秒针的表盘。
3、现在来绘制指针。按 Ctrl+F8 新建立一个影片剪辑,起名为:指针 ,选择绘图工具,
在里面垂直绘制出一条细线做为指针。注意:将线条的下方与影片剪辑的中心点对齐
4、返回主舞台,新建一个层,改名为:指针—秒 将刚才制作的指针拖放在表盘的中
间,注意要把指针的中心点与表盘的中心点对齐。之后,为这个指针实例起一个名字为:sec
我们先做秒针。
5、同理,再新建一个层,并起名字为:指针—分 将库里的“指针”元件再拖放出来,并改
变这个实例的长度和颜色,让它做为分针。实例名起为:min
6、现在按照上面的方法来制作时针,新建一个层,改名为:指针-时 将指针元件拖放
在舞台中,与表盘中心对齐,并把这个实例起名为:hour
7、呵呵,现在咱们开始编写程序了,为了观察方便,我们再新建一个层,改名为AS,选
中AS层的第一桢,打开动作面板,开始编写脚本,首先,我们要让舞台上的动态文本框显
示日期及时间。
_root.onEnterFrame = function() {//需要让影片不停执行下面脚本。
mydate = new Date();//首先构建一个名字叫 mydate的日期对象, 因为以后我们就要用 mydate
这个实例来控制了。
myear = mydate.getFullYear();//获取本地机器上的年份,并放在 myear 变量中。
mmon = mydate.getMonth()+1;//获取本地机器上的月份,并放在 mmon变量中。因为获取的
值是 0 代表一月,1 代表二月,依此类推,所以要加上 1 才正确
mdate = mydate.getDate();//获取本地机器上的本月的第几天,并放在 mdate变量中。
mou = mydate.getHours();//获取本地机器上的小时数值,放在 mou变量中,这个命令能获取
0--23之间的数值。
mm = mydate.getMinutes();//获取本地机器上的分钟数值,并放在 mm变量中。
ms = mydate.getSeconds();//获取本地机器上的秒数值,放在 ms 变量中。
mytime = myear+"年"+mmon+"月"+mdate+"日 "+mou+":"+mm+":"+ms; //让舞台上变量名为
mytime的动态文本框显示日期及时间。
}
现在可以测试一下了,可以发现舞台上文本框会显示出日期及时间,那么还有表里面的秒、
分、时针怎么跟时间对应起来呢?现在我们加入如下一些脚本
sec._rotation = 6*ms;//利用flash中对象旋转命令来实现指针的走动。 _rotation旋转一周是360
度,所以,秒针每走一下,就等于走了6 度,所以用一个算法来获取每秒的度数 6*ms
min._rotation = 6*mm;//同理,让分针也是根据获取的分钟数值乘以 6 来进行度的旋转。
hour._rotation = mou*30+mm/60*30;//小时的走动,算法稍微复杂一点,因为时针走一圈是 12
个大格。具体上面的算法有兴趣的朋友可以自己研究一下。
日期及时间的 AS 编写并不复杂,这里我只简单的讲解了获取日期及时间。,当然了,我们
还可以进行日期及时间的修改设置,使用的命令及方法与获取类似,希望大家能通过这个简
单的例子掌握基本的日期及时间 AS 的编写。在后面的课程中我们就要提高性的讲解,同时
也希望大家继续关注。


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值