[AS v2.0]一个填充类(貌似网页的重复背景图像)
起初是想写一个高效率的填充背景的方法,没想到写着写着竟然写成了我最成功的一个AS v2.0类 :)
(尽管只有一个构造函数……)
不过发现AS的效率做这个真的是不很合适 -_-b
new Fill(_root, "my_link", true);//填充场景,深度最低
new Fill(_root, "my_link", false);//填充场景,深度最高
new Fill(my_mc, "my_link", true);//填充my_mc,深度最低
new Fill(my_mc, "my_link", false);//填充my_mc,深度最高
new Fill(my_mc, "my_link", true, 50, 100);//填充my_mc,深度最低,面积为5000=50*100
new Fill(my_mc, "my_link", false, 50, 100);//填充my_mc,深度最高,面积为5000=50*100
ps:my_mc和my_link的注册点均为左上角。
(尽管只有一个构造函数……)
不过发现AS的效率做这个真的是不很合适 -_-b
/*/ * 标题: 填充类 * 描述: 使用链接自库中的元件填充指定的MC * 版权: (c) 2005 hjc Copyright * 作者: hjc * 版本: 1.0 * 时间: 2005.05.13 /*/ class Fill { //将要填充的MC private var mc:MovieClip; //库中链接的标识符 private var link:String; //用于确定是否将填充层作为背景,即深度最低 private var bottom:Boolean; //填充层的深度 private var depth:Number; //可选参数,指定填充范围的宽 private var width:Number; //可选参数,指定填充范围的高 private var height:Number; //临时变量,用于确定循环中MC的深度 private var n:Number = 0; //---------------------------------------- //----------构造函数---------- function Fill(my_mc:MovieClip, my_link:String, my_bottom:Boolean, my_width:Number, my_height:Number) { mc = my_mc; link = my_link; //---------------------------------------- //----------是否为背景填充---------- if (my_bottom) { depth = -16384; } else { depth = mc.getNextHighestDepth(); } //---------------------------------------- //----------重载:宽---------- if (typeof (my_width) != "number") { width = mc._width; } else { width = my_width; } //---------------------------------------- //----------重载:高---------- if (typeof (my_height) != "number") { height = mc._height; } else { height = my_height; } //---------------------------------------- //----------创建填充层---------- mc.createEmptyMovieClip("tmp", depth); //---------------------------------------- //----------排列---------- for (var i = 0; i<Math.ceil(height/mc.tmp.mc1._height); i++) { for (var j = 0; j<Math.ceil(width/mc.tmp.mc1._width); j++) { mc.tmp.attachMovie(link, "mc"+(n+1), n+1); eval(mc+".tmp.mc"+(n+1))._x = mc.tmp.mc1._width*j; eval(mc+".tmp.mc"+(n+1))._y = mc.tmp.mc1._height*i; n++; } } } }
new Fill(_root, "my_link", true);//填充场景,深度最低
new Fill(_root, "my_link", false);//填充场景,深度最高
new Fill(my_mc, "my_link", true);//填充my_mc,深度最低
new Fill(my_mc, "my_link", false);//填充my_mc,深度最高
new Fill(my_mc, "my_link", true, 50, 100);//填充my_mc,深度最低,面积为5000=50*100
new Fill(my_mc, "my_link", false, 50, 100);//填充my_mc,深度最高,面积为5000=50*100
ps:my_mc和my_link的注册点均为左上角。
[2005-5-13 1:37]