什么都不用管,将下面的AS代码copy下来,放到一个新建Flash文档的第一帧中。
Ctrl+回车测试,看看会出现什么?
createEmptyMovieClip("aiyi", 1);
Line = 31;
Movieclip.prototype.box_line = function(Line_L, Line_R, l) {
this.lineto(Line_L, Line_R);
this.lineto(Line_L+l, Line_R);
this.lineto(Line_L+l, Line_R+l);
this.lineto(Line_L, Line_R+l);
};
for (i=0; i<248; i += Line) {
for (j=0; j<248; j += Line) {
with (_root.aiyi) {
moveto(j, i);
i%2 == 1 ? (j%2 == 1 ? beginfill(0x000000, 100) : beginfill(0xffffff, 100)) : (j%2 == 0 ? beginfill(0x000000, 100) : beginfill(0xffffff, 100));
linestyle(0, 0x000000, 100);
box_line(j, i, Line);
endFill();
}
}
}
下面我来解释一下是如何用AS来实现的:
createEmptyMovieClip("aiyi", 1);
Line = 31;//设置方块的边长
Movieclip.prototype.box_line = function(Line_L, Line_R, l) {//用来画方的构造函数
this.lineto(Line_L, Line_R);
this.lineto(Line_L+l, Line_R);
this.lineto(Line_L+l, Line_R+l);
this.lineto(Line_L, Line_R+l);
};
//下面的代码则利用奇偶来判断是否填充黑或白色……
for (i=0; i<248; i += Line) {
for (j=0; j<248; j += Line) {
with (_root.aiyi) {//with动作,用with后不必重复书写对象的名称和路径。
moveto(j, i);
i%2 == 1 ? (j%2 == 1 ? beginfill(0x000000, 100) : beginfill(0xffffff, 100)) : (j%2 == 0 ? beginfill(0x000000, 100) : beginfill(0xffffff, 100));
/*
下面偶就大概说一下编程思路,当i为25(奇数)时,i%2==1为25%2==1,反回true值,当返回true时,执行(j%2==1?beginfill(0x000000, 100):beginfill(0xffffff, 100))。而这又是一个“条件”
j%2==1?beginfill(0x000000, 100):beginfill(0xffffff, 100):
先计算j%2的值,如当j=25时,返回T,那么执行beginfill(0x000000, 100)——0x000000为RGB值,也就是黑色 ,后面的100是Alpha值,也就是完全不透明了。
第一次循环可以将第一个方块填充为黑色。
第二次循环:i=25,j=50时,还是执行(j%2==1?beginfill(0x000000, 100):beginfill(0xffffff, 100))。而这次j=50,50%2==1为F,那么会执行beginfill(0xffffff, 100)——即填充为白色,Alpha值为100%
那么第二次循环的目的:将第一行的第二列的方块填充为白色……
以此类推……
当i进行第二轮循环时:
即i=50时:50%2==1返回F,这时执行(j%2==0?beginfill(0x000000, 100):beginfill(0xffffff, 100)。再看j值,25%2==0返回F,执行beginfill(0xffffff, 100)——即填充为白色。
这次循环后,后将第二行的第一列的方块填充为白色……
剩下的就不用遇多说了吧,一样的,只要明白其一就能明白全部。
*/
linestyle(0, 0x000000, 100);//在绘制的路径中调用 lineStyle 方法来为路径中的不同线条段指定不同的样式。
box_line(j, i, Line);//调用上面刚才定义的box_line构造函数。
endFill();//应用填充。
}
}
还等什么呢,自己动手试一下吧:)
- 最近更新
