| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > ActionScript教程 > 文章正文 用户登录
如何加入透明Flas
为新浪博客添加fl
flashget下载联盟
265联盟:“Flash
新易网络提供100M
龙太极/100m/asp/
无限网络提供50M 
霞光科技50M/Htm/
苏能科技100M/FTP
悠博科技50M/FTP/

用AS来打造国际象棋棋盘           

用AS来打造国际象棋棋盘

作者:佚名 来源:作者: AIYI2003 更新:2007-1-13 20:48:27 错误报告 我要投稿

什么都不用管,将下面的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();//应用填充。
   }
  }

 还等什么呢,自己动手试一下吧:)
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。