1  /  1  Page   1 GotoPage View:688

AS菜鸟教程18 用ActionScript画图

AS菜鸟教程18 用ActionScript画图

Flash MX ActionScript的绘画方法位于动作面板的“对象”/“影片”/“MovieClip”/“绘画方法”目录下面。使用ActionScript的绘画方法可以定义线条样式、画直线、曲线、对图形进行填充以及清除所画图形等操作。
  18.1 动态创建影片剪辑
  由于绘画方法包含在影片剪辑中,所以在使用绘画方法前要创建影片剪辑。使用MovieClip的createEmptyMovieClip方法可以动态地创建影片剪辑,如下所示:
  _root.createEmptyMovieClip("MovieClipName", depth);
  其中,MovieClipName是创建的影片剪辑实例名,depth是创建的影片剪辑所在的深度级别。
  18.2 绘画方法
  18.2.1 lineStyle
  MovieClipName.lineStyle ([thickness[,rgb[,alpha]]])
  linStyle命令定义将要绘制的线条的样式,其中,参数thickness定义线条的粗细,rab参数定义线条的颜色,alpha参数定义线条的透明度。如:
  lineStyle(0, 0x000000, 100); //定义极细线条,颜色为黑色,不透明
  lineStyle(2, 0xFF0000, 50); //定义线条宽度为2,颜色为红色,透明为50%
  定义了线条样式后即可以使用绘线命令绘制线条,绘制的线条都将保持与lineStyle命令所定义一致的样式,直到使用新的lineStyle命令为止。
  18.2.2 moveTo
  MovieClipName.moveTo (x,y)
  moveTo命令将当前绘画位置移到指定的坐标点(x,y)。
  moveTo命令一般用于新起一点开始画线。
  18.2.3 lineTo
  MovieClipName.lineTo (x,y)
  使用当前线条样式从当前绘画位置向(x,y)绘制直线;当前绘画位置随后被设置为(x,y)。
  18.2.4 curveTo
  MovieClipName.curveTo (controlX,controlY,anchorX, anchorY)
  使用由(controlX,controlY)指定的控制点,以当前的线条样式绘制从当前绘画位置到(anchorX,anchorY)的曲线。当前的绘画位置随后设置为(anchorX,anchorY)。使用curveTo命令最关键的就是控制点的确定。控制点相当于是所绘曲线起始点和终点切线的交点,如图18-1所示。
  图18-1 控制点示意图
  18.2.5 beginFill
  MovieClipName.beginFill ([rgb[,alpha]])
  beginFill命令表示填充的开始,参数rgb表示要用于填充的颜色,alpha表示透明度。在使用beginFill命令后所绘制的闭合路径将自动以beginFill命令指定的颜色和颜色进行填充。
  18.2.6 beginGradientFill
  MovieClipName.beginGradientFill (fillType, colors, alphas, ratios, matrix)
  beginGradientFill用于在闭合路径中填充渐变色,参数fillType有两个值:linear表示线性渐变,radial表示放射渐变。colors是一个数组,包括要在渐变中使用的RGB十六进制颜色值。alphas也是一个数组,包括与colors数组中颜色相对应的Alpha值;有效值为0~100。如果该值小于0,则Flash使用0。如果该值大于100,则Flash使用100。ratios是颜色配额的数组;有效值为0~255。该值按100%定义了对颜色进行采样处的宽度的百分比。matrix 一个变形矩阵,是带有下列两组属性之一的一个对象:
  = a、b、c、d、e、f、g、h、i,它们用于描述下列形式的 3×3 矩阵:
  a b c
  d e f
  g h i
  如果matrixType属性不存在,则其余参数都是必需的;如果缺少其中任何一个则该函数会失败。该矩阵缩放、平移、旋转和倾斜在(-1,-1)和(1,1)处定义的单位渐变。
  = matrixType、x、y、w、h、r。
  这些属性表示下列含义:matrixType 是字符串box、x是相对于该渐变左上角父级剪辑的注册点的水平位置,y是相对于该渐变左上角父级剪辑的注册点的垂直位置,w是渐变的宽度,h是渐变的高度,r是渐变的旋转角度(以弧度为单位)。
  18.2.7 endFill
  MovieClipName.endFill()
  对调用beginFill或beginGradientFill方法以来添加的线条或曲线应用填充。Flash使用的是对beginFill或beginGradientFill的上一次调用中指定的填充。如果当前的绘画位置不等于moveTo方法中指定的上一个位置,而且定义了填充,则用线条闭合该路径,然后进行填充。
  18.2.8 clear
  MovieClipName.clear()
  删除与影片剪辑关联的所有绘画命令。用Flash绘画工具绘制的形状和线条不受影响。调用clear方法还会删除当前的线条样式。
  18.3 练习:全脚本的图形
  使用绘图方法绘制全脚本的图形不难,主要是工作量比较大,要求细心。一般来说完全使用ActionScript命令绘制复杂图形的意义不是很大,作为了解已经足够了。
  下面给出文件draw.fla的所有源程序,供你参考。其中主要用到的绘图方法有lineStyle、moveTo、lineTo和curveTo,没有用到的方法请自己研究和练习。draw.fla的结果如图18-2所示(hoho,有点ugly)。

  图18-2 使用绘图方法绘制的图形
_root.createEmptyMovieClip("girl",
1);  with
(_root.girl)
{
  lineStyle(0,
0x000000,
100);
  beginFill(0x000000,
100);
  moveTo(138,
164);
  curveTo(119,
160,
98,
165);
  curveTo(120,
155,
138,
164);
  moveTo(156,
166);
  curveTo(166,
162,
174,
164);
  lineTo(174,
161);
  curveTo(164,
160,
156,
166);
  endFill();
  lineStyle(2,
0x000000,
100);
  moveTo(133,
178);
  curveTo(116,
166,
104,
183);
  moveTo(132,
181);
  curveTo(116,
169,
104,
184);
  moveTo(132,
184);
  curveTo(117,
170,
104,
184);
  moveTo(128,
193);
  curveTo(119,
197,
109,
193);
  moveTo(126,
179);
  curveTo(130,
191,
121,
195);
  moveTo(117,
195);
  curveTo(106,
184,
116,
175);
  lineStyle(0,
0x000000,
100);
  moveTo(115,
179);
  curveTo(118,
180,
118,
183);
  curveTo(116,
185,
113,
183);
  curveTo(114,
190,
119,
191);
  curveTo(125,
190,
125,
185);
  curveTo(124,
177,
115,
179);
  lineStyle(2,
0x000000,
100);
  moveTo(151,
185);
  curveTo(151,
177,
160,
173);
  curveTo(168,
171,
173,
176);
  moveTo(154,
180);
  curveTo(162,
170,
171,
178);
  moveTo(163,
174);
  curveTo(170,
175,
170,
182);
  moveTo(155,
192);
  curveTo(163,
195,
167,
191);
  moveTo(160,
175);
  curveTo(153,
181,
155,
189);
  curveTo(157,
192,
161,
192);
  curveTo(171,
188,
163,
176);
  lineStyle(0,
0x000000,
100);
  moveTo(160,
180);
  curveTo(162,
182,
161,
183);
  curveTo(159,
184,
158,
182);
  curveTo(156,
187,
160,
189);
  curveTo(164,
189,
164,
185);
  curveTo(164,
180,
160,
180);
  lineStyle(2,
0x000000,
100);
  moveTo(148,
185);
  curveTo(147,
195,
153,
203);
  curveTo(147,
207,
147,
209);
  moveTo(130,
219);
  lineTo(152,
218);
  lineStyle(3,
0x000000,
40);
  moveTo(133,
225);
  lineTo(143,
225);
  lineStyle(1,
0x000000,
100);
  moveTo(174,
145);
  curveTo(176,
157,
175,
172);
  curveTo(173,
181,
172,
186);
  lineTo(169,
212);
  curveTo(169,
217,
164,
224);
  lineTo(148,
242);
  curveTo(144,
246,
135,
246);
  curveTo(112,
242,
96,
230);
  moveTo(71,
168);
  curveTo(68,
164,
63,
164);
  curveTo(58,
164,
55,
172);
  curveTo(56,
191,
68,
204);
  lineTo(74,
206);
  lineStyle(1,
0x000000,
60);
  moveTo(70,
174);
  curveTo(67,
170,
63,
169);
  curveTo(54,
174,
62,
185);
  curveTo(68,
200,
72,
192);
  moveTo(71,
180);
  curveTo(71,
177,
68,
177);
  curveTo(65,
177,
65,
180);
  curveTo(66,
185,
64,
189);
  curveTo(70,
200,
72,
189);
  curveTo(67,
184,
71,
181);
  lineStyle(1,
0x000000,
60);
  moveTo(47,
151);
  curveTo(55,
93,
113,
85);
  lineTo(115,
87);
  lineTo(116,
85);
  curveTo(170,
92,
195,
130);
  curveTo(207,
158,
194,
164);
  curveTo(207,
152,
185,
123);
  curveTo(203,
150,
189,
169);
  curveTo(193,
150,
186,
138);
  curveTo(197,
169,
179,
179);
  curveTo(190,
174,
184,
145);
  moveTo(176,
127);
  curveTo(190,
165,
178,
174);
  curveTo(184,
159,
178,
137);
  curveTo(182,
156,
173,
169);
  curveTo(179,
155,
175,
139);
  moveTo(171,
123);
  curveTo(181,
153,
164,
167);
  curveTo(176,
146,
168,
127);
  curveTo(175,
149,
159,
160);
  curveTo(171,
141,
166,
129);
  moveTo(161,
113);
  curveTo(175,
141,
144,
164);
  curveTo(161,
151,
161,
128);
  moveTo(158,
127);
  curveTo(159,
151,
143,
164);
  curveTo(157,
147,
155,
119);
  curveTo(152,
144,
120,
157);
  curveTo(157,
136,
152,
106);
  moveTo(150,
115);
  curveTo(146,
139,
130,
150);
  curveTo(140,
140,
147,
117);
  curveTo(132,
149,
113,
153);
  moveTo(145,
121);
  curveTo(139,
132,
126,
141);
  curveTo(116,
154,
97,
160);
  moveTo(118,
141);
  curveTo(103,
156,
98,
156);
  moveTo(118,
141);
  curveTo(105,
149,
98,
155);
  curveTo(87,
162,
70,
163);
  moveTo(101,
156);
  curveTo(94,
163,
72,
163);
  moveTo(71,
164);
  curveTo(72,
222,
105,
318);
  moveTo(74,
164);
  curveTo(74,
185,
78,
205);
  moveTo(77,
164);
  curveTo(75,
194,
88,
241);
  moveTo(80,
165);
  curveTo(90,
245,
101,
292);
  moveTo(72,
187);
  curveTo(73,
225,
80,
250);
  moveTo(82,
165);
  curveTo(82,
210,
103,
259);
  moveTo(85,
164);
  lineTo(84,
193);
  moveTo(90,
162);
  lineTo(85,
171);
  moveTo(95,
162);
  lineTo(84,
177);
  moveTo(172,
183);
  curveTo(180,
247,
187,
263);
  curveTo(200,
294,
195,
334);
  moveTo(171,
200);
  curveTo(174,
230,
182,
258);
  moveTo(171,
212);
  curveTo(170,
226,
183,
274);
  curveTo(196,
314,
190,
331);
  moveTo(168,
219);
  curveTo(168,
234,
176,
263);
  moveTo(165,
224);
  lineTo(168,
242);
  moveTo(163,
227);
  curveTo(161,
251,
184,
296);
  moveTo(166,
240);
  curveTo(170,
253,
171,
268);
  moveTo(173,
261);
  curveTo(175,
272,
180,
281);
  curveTo(188,
295,
189,
330);
  lineStyle(2,
0x000000,
100);
  moveTo(68,
165);
  lineTo(75,
154);
  curveTo(68,
155,
62,
150);
  curveTo(60,
150,
55,
154);
  lineTo(50,
155);
  lineTo(46,
163);
  curveTo(49,
163,
50,
161);
  curveTo(55,
162,
57,
166);
  curveTo(62,
162,
68,
165);
  moveTo(47,
159);
  lineTo(58,
159);
  curveTo(58,
156,
55,
157);
  moveTo(44,
154);
  lineTo(39,
148);
  lineTo(18,
153);
  curveTo(20,
160,
14,
167);
  lineTo(30,
161);
  curveTo(38,
164,
43,
163);
  curveTo(40,
156,
44,
154);
  moveTo(42,
157);
  lineTo(36,
159);
  lineTo(30,
157);
  moveTo(44,
154);
  curveTo(50,
150,
52,
153);
  moveTo(44,
164);
  curveTo(38,
167,
32,
166);
  lineTo(22,
170);
  lineTo(14,
170);
  lineTo(4,
177);
  curveTo(15,
179,
13,
191);
  curveTo(22,
173,
43,
166);
  curveTo(53,
182,
41,
203);
  curveTo(53,
195,
62,
209);
  lineTo(61,
196);
  moveTo(57,
168);
  curveTo(50,
169,
48,
163);
  lineStyle(1,
0x000000,
100);
  moveTo(31,
171);
  curveTo(13,
201,
21,
210);
  moveTo(37,
168);
  curveTo(15,
204,
24,
214);
  moveTo(31,
187);
  curveTo(20,
213,
31,
218);
  moveTo(35,
195);
  curveTo(27,
225,
37,
224);
  moveTo(34,
206);
  curveTo(35,
224,
40,
222);
  moveTo(44,
167);
  curveTo(33,
221,
44,
225);
  moveTo(41,
209);
  curveTo(42,
228,
52,
228);
  moveTo(47,
199);
  curveTo(43,
228,
57,
227);
  moveTo(49,
199);
  curveTo(50,
226,
60,
228);
  curveTo(71,
227,
66,
202);
  moveTo(64,
200);
  curveTo(62,
244,
54,
201);
  curveTo(61,
240,
60,
204);
  lineStyle(2,
0x000000,
100);
  moveTo(189,
169);
  curveTo(192,
166,
195,
169);
  curveTo(199,
174,
206,
176);
  curveTo(196,
181,
196,
191);
  curveTo(190,
178,
181,
179);
  curveTo(188,
182,
188,
186);
  curveTo(189,
189,
194,
188);
  moveTo(187,
173);
  lineTo(193,
175);
  moveTo(197,
184);
  lineTo(208,
189);
  lineTo(204,
193);
  curveTo(199,
190,
189,
205);
  curveTo(188,
192,
184,
190);
  curveTo(182,
189,
182,
183);
  curveTo(179,
182,
180,
179);
  lineStyle(1,
0x000000,
100);
  moveTo(198,
193);
  curveTo(207,
207,
193,
216);
  moveTo(194,
203);
  curveTo(195,
215,
188,
221);
  moveTo(189,
204);
  curveTo(192,
214,
186,
225);
  curveTo(183,
227,
178,
224);
  moveTo(180,
181);
  curveTo(178,
186,
181,
191);
  curveTo(187,
210,
182,
224);
  moveTo(177,
181);
  curveTo(176,
189,
180,
198);
  curveTo(186,
213,
179,
223);
  moveTo(181,
202);
  curveTo(181,
219,
177,
218);
  moveTo(176,
182);
  curveTo(178,
199,
174,
205);
  lineStyle(2,
0x000000,
100);
  moveTo(80,
248);
  curveTo(74,
248,
79,
253);
  lineTo(79,
259);
  lineTo(85,
265);
  moveTo(103,
293);
  curveTo(113,
319,
123,
335);
  moveTo(76,
249);
  curveTo(76,
259,
70,
263);
  curveTo(84,
271,
90,
283);
  moveTo(106,
318);
  lineTo(112,
336);
  moveTo(69,
263);
  curveTo(29,
284,
29,
295);
  curveTo(18,
331,
16,
372);
  curveTo(33,
377,
55,
374);
  curveTo(56,
369,
68,
369);
  curveTo(73,
375,
65,
377);
  moveTo(47,
292);
  curveTo(56,
312,
69,
329);
  curveTo(63,
334,
63,
340);
  moveTo(57,
312);
  curveTo(60,
339,
69,
356);
  lineTo(67,
358);
  moveTo(65,
353);
  lineTo(69,
370);
  lineStyle(1,
0x000000,
100);
  moveTo(18,
363);
  curveTo(40,
367,
48,
365);
  curveTo(55,
359,
66,
360);
  moveTo(19,
374);
  curveTo(18,
387,
20,
400);
  moveTo(64,
370);
  curveTo(65,
388,
67,
400);
  moveTo(83,
255);
  curveTo(83,
260,
80,
261);
  moveTo(137,
248);
  curveTo(137,
259,
139,
269);
  moveTo(138,
263);
  curveTo(142,
267,
148,
268);
  lineStyle(2,
0x000000,
100);
  moveTo(138,
254);
  curveTo(156,
263,
157,
310);
  curveTo(161,
327,
162,
335);
  moveTo(141,
258);
  curveTo(156,
270,
173,
273);
  moveTo(159,
269);
  curveTo(168,
289,
166,
314);
  curveTo(167,
328,
169,
336);
  moveTo(193,
287);
  lineTo(202,
298);
  curveTo(208,
336,
222,
365);
  lineTo(215,
373);
  lineTo(213,
374);
  lineTo(195,
371);
  moveTo(186,
307);
  curveTo(181,
333,
185,
337);
  lineTo(186,
342);
  moveTo(63,
344);
  curveTo(72,
338,
84,
337);
  curveTo(103,
338,
140,
335);
  curveTo(170,
335,
190,
347);
  lineTo(187,
353);
  moveTo(183,
346);
  curveTo(205,
368,
185,
396);
  lineStyle(1,
0x000000,
100);
  moveTo(213,
373);
  lineTo(213,
400);
  moveTo(136,
329);
  curveTo(136,
331,
139,
335);
  lineStyle(2,
0x000000,
20);
  moveTo(131,
324);
  curveTo(132,
325,
136,
329);
  moveTo(139,
324);
  curveTo(138,
325,
136,
329);
  lineStyle(4,
0x000000,
10);
  moveTo(131,
284);
  curveTo(141,
280,
151,
282);
  moveTo(119,
284);
  curveTo(109,
280,
100,
284);
  moveTo(123,
280);
  curveTo(126,
282,
128,
279);
  lineStyle(7,
0x000000,
10);
  moveTo(79,
343);
  curveTo(90,
339,
101,
341);
  lineTo(155,
341);
  curveTo(167,
339,
184,
349);
  moveTo(72,
396);
  curveTo(128,
389,
180,
397);
  lineStyle(2,
0x000000,
20);
  moveTo(132,
93);
  curveTo(144,
95,
152,
105);
  }
 

回复:AS菜鸟教程18 用ActionScript画图

以后还是发点针对 格斗 或者动画 相关的 基础AS运用吧~

这些高级的连我都用不上了
 

回复:AS菜鸟教程18 用ActionScript画图

果然我连AS碰都没有碰过
 

回复:AS菜鸟教程18 用ActionScript画图

长……
 
1  /  1  Page   1 GoPage

版权所有 武斗火柴人格斗论坛  Discuz!NT  Sitemap

Powered by Discuz!NT 2.1.202    Copyright © 2001-2009 Comsenz Inc.
Processed in 0.421875 second(s) , 4 queries.
返顶部