陈纪霞
(安徽财贸职业学院电子信息系,安徽合肥 230601)
Flash是时下流行的一款网络动画制作软件,具有强大的矢量制作功能和灵活的交互功能。用该工具所创作的网页矢量动画具有图像质量好、下载速度快和兼容性好等优点,因此被业界普遍接受,被广泛应用于影视、动漫、游戏、多媒体演示等众多领域。它的核心部分ActionScript语言可以生成具有很强交互性能的影片和应用于网络的程序。
当我们教学或演讲时希望身边有个随时可涂画的黑板,以更加清晰地描述一个问题。鉴于此,本文充分利用Flash文件的特点,运用ActionScript编程语言,设计了一个可以随意涂画的绘图板,其实用性强,操作简单,携带方便。
设计的绘图板应可以随意涂画,也可以根据需要设置绘画的线条宽度以及线条的颜色,必要时可以撤销或恢复操作,还可以全部清除画板上的所有内容。绘图板界面如图1所示。
图1 绘图板界面
本绘图板整个场景共分为6层(见图2),每层有两帧,从上到下分别为“画图板”层、“边框”层、“滑块、按钮”层、“光标”层、“调色板”层和 as层。各层放置的元件及其作用如下:
“画图板”层放置一按钮“画板感应区”,用于监听光标是否在画板区域按下。
“边框”层为修饰画板区而加在右边和下面的黑色线条。
“滑块、按钮”层放置调节线条宽度的影片剪辑“线条调节”和3个组件PushButton按钮,这3个按钮分别用来实现撤消、恢复和全部清除操作。
“光标”层放置代替画笔用的影片剪辑cursor。
“调色板”层放置调节颜色用的相关元件。
as层放置的是主程序代码。
图2 绘图板场景图
所用的库元件功能如下:
影片剪辑cursor和影片剪辑cursorcolor都是一光标的形状。其中影片剪辑cursorcolor是用来改变颜色的,它放置在影片剪辑cursor里面。
影片剪辑sliderbox为改变调色板用的拖动影片剪辑,作用相当于按钮。
影片剪辑slider里面放置影片剪辑sliderbox。按钮“滑块”为调节线条宽度的按钮。
影片剪辑“滑块 mc”里放置按钮“滑块”。
影片剪辑“线宽调节”里放置影片剪辑“滑块mc”,影片剪辑“颜色 mc”为本游戏的调色板。
影片剪辑“画板感应区”为感应鼠标是否在画板上被按下,即是否开始绘画。该按钮的大小即为画板的大小。
按钮“颜色按钮”放置在影片剪辑“颜色 mc”中,用于鼠标单击调色板获取调色板上的颜色值。
绘画时线条的颜色主要是通过影片剪辑“颜色mc”获取,影片剪辑“颜色 mc”在主场景中,实例名为block。主场景中代替画笔的影片剪辑cursor(实例名也为cursor)里放置一个用于改变影片剪辑cursor颜色用的影片剪辑cursorcolor,其cursorcolor的实例名也为cursorcolor。
当为影片剪辑“颜色 mc”添加ActionScript控制语句时,首先为影片剪辑“颜色 mc”定义一个颜色对象pp,然后让其动态的获取颜色滑块的值,从而更新调色板上显示的颜色。当代替画笔的影片剪辑cursor单击调色板时,影片剪辑cursor的颜色将相应的转变为调色板所对应的颜色。
第二步效果的实现,可以首先在按钮“颜色按钮”上设置一个颜色,单击时让它获取影片剪辑“颜色mc”上的颜色,再将其颜色值传递给影片剪辑cursorcolor和lineStyle函数中的表示颜色的参数项,这样就可以实现让cursorcolor的颜色随着调色板的颜色而变,与此同时线条的颜色也跟着变化。
按钮sliderbox的ActionScript语句如下:
按钮“滑块”是调节线条宽度的按钮,它放置在影片剪辑“滑块 mc”里。
主要的ActionScript语句如下:
为了监测画笔(即影片剪辑newcursor)是否在画板区即按钮画笔感应区上被按下来确定是否开始画线,使用了变量p来传递信息。当在画板区按下鼠标时p等于1,此时主场景第2帧中的if语句开始执行,即说明绘画阶段开始。当释放鼠标时p等于0,此时将不会执行绘画程序。
if语句的主要代码如下:
整个画板上画图的过程,是通过画线函数中的moveto和cureto方法来设置线条之间的连接,从而达到画图的目的。
可以自定义3个函数,设为“撤消”、“恢复”、“全部清除”按钮函数。
如在as层的第一帧添加如下ActionScript语句为“全部清除”按钮函数。
类似按钮函数不再赘述。
本文所设计的绘图板实用性强、操作简单,具有良好的扩展性,用户可以根据自己的实际情况添加相关函数语句。而且Flash动画具有良好的兼容性,可以嵌入到其他文件之中,也可发布到网络上,为我们随时使用带来了便利。
[1]叶翊霳.Flash ActionScript程序设计[M].北京:清华大学出版社,2009.
[2]胡孔法.精通 Flash MX 2004动画与 Actionscript编程[M].北京:清华大学出版社,2004.