Flash MX里新增加的画图功能

: Flash MX里新增加的画图功能概述

Using MoveTo, lineTo and CreateEmptyMovieClip (Drawing Object)

flash MX里新增加了画线的功能,你可以打开Action面板,点击:"+"-'Objects

----'Movie---'Movie Clip---'Drawing Methods.

在绘画的功能里增加了脚本语句:

beginFill,beginGradientFill,clear,curveTo,endFill,lineStyle,lineTo和

moveTo见下图所示.

: FlashMX里新增加的画图功能beginFill

beginFill

开始填充的颜色

flash MX里新增加的功能,用于Flash Player6播放器.

用法: myMovieClip.beginFill ([rgb[,alpha]])

参数变量:

rgb是十六进制的颜色值(例如红色是: 0xFF0000, 蓝色是 0x0000FF,等等.),如果给定的值不正

确或者没有给定填充的颜色值,那么这个填充颜色的功能实现不了。

Alpha是0-100的一个整数。它是填充颜色的透明度。如果没有给定这个值,系统默认的是实体填

充(solid格式);如果给定的值小于0,Flash MX取Alpha为0;如果给定的值大于100,Flash

MX取100。

方法:指出了一个新建画图的路径,如果一个开放的路径存在,并且路径闭合,就可以用相关的

颜色填充。它的用法和endFill是相似的。

FlashMX里新增加的画图功能beginGradientFill(渐变填充?/p>

beginGradientFill

使用范围:Flash MX,

播放器支持:Flash Player 6.

用法:myMovieClip.beginGradientFill (fillType, colors, alphas, ratios, matrix)

参数变量:

fillType:填充的类型是:直线渐变填充还是放射状填充

Colors:填充的颜色RGB值(例如红色是: 0xFF0000, 蓝色是 0x0000FF,等等.)

Alphas:是响应填充颜色的透明度,其有效值为0-100,如果小于0,Flash会自动取0;大

100的时候,Flash 只取100。

Ratios表示为颜色分配的比例,有效值为0-255。

Matrix是一个变换矩阵。它可以用下面的3×3的矩阵方法来表示:

a b c

d e f

g h i

看下面的一个具体实例:

_root.createEmptyMovieClip( "grad", 1 );

with ( _root.grad )

{

colors = [ 0xFF0000, 0x0000FF ];

alphas = [ 100, 100 ];

ratios = [ 0, 0xFF ];

matrix = { a:200, b:0, c:0, d:0, e:200, f:0, g:200, h:200, i:1 };

beginGradientFill( "linear", colors, alphas, ratios, matrix );

moveto(100,100);

lineto(100,300);

lineto(300,300);

lineto(300,100);

lineto(100,100);

endFill();

}

解释一下上面的原码:

在主场景里创建一个空的MC,这也是Flash MX新增加的功能,给其命名为grad.

With是对场景中的MovieClip进行引用的,替代了tellTarget。

colors = [ 0xFF0000, 0x0000FF ]是颜色矩阵,0xFF0000代表红色,0x0000FF代表兰色。

alphas = [ 100, 100 ];是颜色透明度,两个100分别表示红色和兰色都是实体填充(

solid)。

matrix = { a:200, b:0, c:0, d:0, e:200, f:0, g:200, h:200, i:1 }颜色分配矩阵

beginGradientFill( "linear", colors, alphas, ratios, matrix )

渐变填充的方式是直线渐变,颜色用上面定义过的红色和兰色,透明度为100,变换比率红

色为0,兰色为0xFF;变换矩阵为上述给定的方式。下面的是:

moveto(100,100);以(100,100)为起点画线

lineto(100,300); 从起点画到(100,300)

lineto(300,300); 从点(100,300)画到点(300,300)

lineto(300,100); 从点(300,300)画到点(300,100)

lineto(100,100); 从点(300,100)画到起点(100,100)

输出的结果如下图所示:

我们改变一下颜色变换矩阵,将上述matrix代码改为下面的形式,其它不变

matrix = { matrixType:"box", x:100, y:100, w:200, h:200, r:(45/180)*Math.PI };

_root.createEmptyMovieClip( "grad", 1 );

with ( _root.grad )

{

colors = [ 0xFF0000, 0x0000FF ];

alphas = [ 100, 100 ];

ratios = [ 0, 0xFF ];

matrix = { matrixType:"box", x:100, y:100, w:200, h:200, r:(45/180)*Math.PI };

beginGradientFill( "linear", colors, alphas, ratios, matrix );

moveto(100,100);

lineto(100,300);

lineto(300,300);

lineto(300,100);

lineto(100,100);

endFill();
}
输出的结果如图所示:

我们随便把颜色值改变一下

matrix = { a:100, b:50, c:50, d:230, e:20, f:80, g:200, h:200, i:70 };

看一下输出的结果:

:FlashMX里新增加的画图功能 clear(擦除绘图)


使用范围:Flash MX,

播放器支持:Flash Player 6.

用法:myMovieClip.clear()

说明:删除所有与myMovieClip有关的命令,但是用Flash绘图工具画出来的线或是形状

不受该命令的影响。

在上面的脚本语句里加入:

_root.grad.clear();

在进行测试的时候,矩形彩图就看不到了。

 五.FlashMX里新增加的画图功能lineStyle(线条的类型)

使用范围:Flash MX

播放器支持:Flash Player 6. (Flash MX)

用法

myMovieClip.lineStyle ([thickness[, rgb[, alpha]]])

thickness:线的粗细、

rgb:颜色标记符号、

alpha:透明度

参数变量:

Thickness:是线条粗细的一个整数值,可以在0-255之间取值。

Rgb是一个16进制的颜色表示值(例如:红色为0xFF0000, 兰色为 0x0000FF, 等等),如果

没有定义FlashMX默认的为0x000000(黑色)

透明度:是一个整型变量,显示着线颜色的透明度;值的范围为:0-100。如果此值没有

定义,默认值为:100(实线)。如果值取的小于0,Flash MX自动取0;如果此值大于

100,Flash MX取100。

说明:

定义一个直线的类型是Flash用户为后面画直线或者曲线时调用方便而定义的,你可以给出

不同的参数来改变线的形式,也可以在画图中间随时定义某一段线条的形式。

例如:

The following code draws a triangle with a 5-point, solid magenta line and no

fill.

_root.createEmptyMovieClip( "triangle", 1 );

with ( _root.triangle )

{

lineStyle( 5, 0xff00ff, 100 );

moveTo( 200, 200 );

lineTo( 300,300 );

lineTo( 100, 300 );

lineTo( 200, 200 );

}

第一句:_root.createEmptyMovieClip( "triangle", 1 );

建立一个空的动态MC,名字为"triangle"

with ( _root.triangle )

指定MC路径

lineStyle( 5, 0xff00ff, 100 );

定义线条的形式,粗细值取5,颜色0xff00ff为粉红色,透明度为100,

下面是画三角形起点为(200,200),其它点为(300,300,)和(100,300)

看一下输出的结果

: FlashMX里新增加的画图功能概述lineTo(画直线)

MovieClip.lineTo

应用范围:Flash MX

播放器支持:Flash Player 6. (Flash MX)

用法:myMovieClip.lineTo (x, y)

参数变量

x当前MC里的水平方向的x坐标,是一个整型变量

y当前MC里的水平方向的y坐标值,是一个整型变量

说明

方法:用定义的线形画一条线到点(x,y);现在正在画的点作为下一个点的起始位置(

x,y)。如果你正在用的MC需要画线,就调用lineTo语句,如果在调用moveTo语句之前调

lineTo的话,那么目前默认的位置点为(0,0),如果参数没有设置,这种画线的方法

就失效了。当前画的位置没有改变。

_root.createEmptyMovieClip ("triangle", 1);

with (_root.triangle){

beginFill (0x0000FF, 50);

lineStyle (5, 0xFF00FF, 100);

moveTo (200, 200);

lineTo (300, 300);

lineTo (100, 300);

lineTo (200, 200);

endFill();

}

这个例子和上面4中的例子是一样的,只不过多了两条语句:

beginFill (0x0000FF, 50);

endFill();

填充颜色是紫色

: Flash MX里新增加的画图功能MovieClip.curveTo(画曲线)

MovieClip.curveTo(画曲线)

Availability (使用范围)

Flash Player 6. (Flash MX)

Usage(用法)

myMovieClip.curveTo (controlX, controlY, anchorX, anchorY)

controlX控制点的x坐标,是个整型变量;

controlY控制点y坐标,是整型变量;

anchorX锚点x坐标,是整型变量;

anchorY锚点的y坐标,是整型变量。

看下面的例子

_root.createEmptyMovieClip( "circle", 1 );

with ( _root.circle )

{

lineStyle( 0, 0x0000FF, 100 );

beginFill( 0xFF0000 );

moveTo( 300, 300 );

curveTo( 400, 300, 400, 200 );

curveTo( 400, 100, 300, 100 );

curveTo( 200, 100, 200, 200 );

curveTo( 200, 300, 300, 300 );

endFill();

}

效果图:

如果没有endfill()

看下面的例子原码:cure2.fla

_root.createEmptyMovieClip( "circle", 1 );

with ( _root.circle )

{

lineStyle( 0, 0x0000FF, 100 );

beginFill( 0xFF0000 );

moveTo( 300, 300 );

curveTo( 400, 300, 400, 200 );