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 );