|
用Flash ActionScript绘制直线 Flash动作脚本是Flash强大功能实现的工具,如果想发挥Flash的神奇效果,就来学习动作脚本吧,我们从用脚本绘图基础语法开始,用脚本绘图的优点是,在绘的图复杂的时候,可以节约空间,同是提高效率。先看本课实例效果:点下面图中的按扭,会看到了动态生成了一条直线。本例制作要点:The virtual pen(虚拟钢笔)的概念,MovieClip.lineStyle()和MovieClip.line TO()绘制命令的使用。
下面来学习制作过程: 步骤详解: 1,先制作一个名为button的按钮。 (1)本例中事先用PS准备好了四幅按钮图片,如图1。

(2)新建Flash文档后,执行“插入/新建元件”命令,进行如图2参数设置。

(3)再执行“文件/导入到舞台”命令,在弹出的对话框中选择准备好的图片,此例中选择button1,如图3,会弹出一个如图4所示的对话框,单击“是”。


(4)按钮元件就建立好了,时间轴如图5所示。

2,执行“修改/文档”命令,进行如图6设置。

3,执行“插入/新建元件”命令,进行如图7参数设置,选择矩形工具 ,并设置填充不可用,只保留黑色的矩形边框,如图8。然后绘制出一个长为198px,宽为148px的矩形框,如图9。



4,回到主场景(单击时间轴上的“场景1”),把Symbol图形元件拖入到舞台,并设置X,Y轴坐标都为1.0,如图10。

5,单击插入图层 按钮,新建图层2,把button按钮拖入舞台,如图11放置。

6,新建军图层3,选择文本工具 ,输入静态文本"Draw line to 80,50",选择“动画消除锯齿”,如图12。

好了,图层都制作好了,下面就来进行代码的添加: 在主场景舞台中选中buttonr按钮,打开“动作-按钮”窗口,输入如图13中所示的代码。

执行“控制/测试影片”,看看是不是单击按钮,就会绘制出一条直线呀^.^ 建议执行“文件/保存”命令,保存Flash源文件,以在下篇实例《用ActionScript绘制正方形》中使用。
肯定大家到此是不会满足的,Sibyl会让大家来做个明白人,下面就来讲解一下此例的原理。 1,The virtual pen(虚拟钢笔)的概念。 每一个影片剪辑中都有这个“虚拟钢笔”。这支钢笔是预先设定好的(默认的),它位于影片剪辑的原点(0,0)。它并没有“绘制东西”和被填充,所以这时是不可见的。任意一种绘制方法都将修改“钢笔”属性或者移动它。 2,绘制命令。 ActionScrip中新的绘制命令可以应用到每一个影片剪辑中,经由代码创造的线和外形在执行效率上要胜过手工绘制的图形。用代码绘制的命令有8个,这里只讲本例中用到的两个。 (1)MoveiClip.lineStyle() 用法:my_mc.lineStyle([thickness[,rgb[,alpha]]]) 功能: 指定一个线条样式,供Flash用于对lineTO()和curveTo()的后续调用,直到使用不同的参数调用lineStyle()为止。可以在绘制路径的中间调用lineStyle()来为路径中的不同线条段指定不同的样式。 参数: thickness-整数输入,以磅为单位指示线条的粗细;有效值为0到255。如果未指定数值,或者该参数为undefined,则不绘制线条。如果传递的值小于0,则Flash使用0,同样,如果传递的值大于255,则Flash解释程序使用255。 rgb-线条的十六进制颜色值,如果未指示该值,则使用黑色0x000000。 alpha-整数输入,有效值为0到100,指示线条颜色的alpha值,即透明度,如果没有指示,则使用100(纯色)。如果该值小于0,则Flash使用为0。如果该值大于100,则Flash使用100。 当然还有其它的参数,不过在这里就不多做介绍了。 本例中应用: _root.lineStyle(1,0x0000ff,100); 这个语句定义了将要绘制函数线段的样式,_root表示后面函数应用对象是当前级别的根影片剪辑,“1”定义了所绘制线段的宽度为1像素,“0x0000ff”是蓝色的二进制代码,“100”定义了线段的不透明度为100%(也就是不透明)。 (2)MovieClip.lineTo() 用法:MovieClip.lineTO(x,y) 功能:用当前张条样式从当前点向(x,y)画线,当前画线坐标将被设定为(x,y)。如果在使用moveTO之前调用此语句,默认起始点是(0,0),该方法画出的线条在所有使用Flash工具画出的线条之上。 参数:x-相对于父影片原点的水平距离。 y-相对于父影片原点的垂直距离。 本例中应用: root.lineto(80,50); 这个语句使“虚拟钢笔”从当前位置(0,0)向(80,50)画出线段,当这条线段被画出之后“钢笔”的位置就处于(80,50)
|