论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash教程
Tag:flash cs,flash 8,鼠绘,as,手绘,工具,文字,loading,入门,初学,mc,影片剪辑,声音,mtv,游戏,引导,遮罩,菜单,补间,广告条,时钟,视频教程

如何利用as制作国际象棋棋盘?

文章类别:Flash | 发表日期:2008-9-21 15:03:33

  

如何利用as制作国际象棋棋盘?
具体步骤
我们利用as语句编写的方法来制作国际象棋棋盘。先看一下效果。如图3.3.112所示。


图3.3.112????效果演示
单击场景1时间轴上面的图层1的第1帧,打开AS面板,添加如下AS2语句:
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();
??}
?}
语句的意思是:
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));
?linestyle(0,?0x000000,?100);//在绘制的路径中调用?lineStyle?方法来为路径中的不同线条段指定不同的样式。
???box_line(j,?i,?Line);//调用上面刚才定义的box_line构造函数。
???endFill();//应用填充。
??}
?}

专家指点:
编程思路:当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)——即填充为白色。
这次循环后,后将第二行的第一列的方块填充为白色……
剩下的就不用遇多说了吧,一样的,只要明白其一就能明白全部。

视频教程列表
文章教程搜索
 
Flash推荐教程
Flash热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058