今天看了网友用flash8制作图形填充的一个效果后,中午思考了一下,能不能在flashmx中实现呢?静下来想了想其实在flashmx里也不是很难实现那种效果的,关键是在于换一种思考方式,利用mc复制覆盖填充位置不是也达到了目的吗?于是动手制作如下:
1.准备三张小图片,按照填充图的单元大小对它们进行缩放后,转换它们为电影元件,放在舞台上的右下方位置,实例名分别是 mcn1 mcn2 mcn3,它们在为库中的链接名也是 mcn1 mcn2 mcn3,
2.另创建一个填充图的单元大小的电影元件实例,其在舞台上的名称与在库中的链接名称相同,都设为mc,并且在其上放置一个静态文本"清除",此mc也放在舞台上的右下方位置,并与上述mcn1 mcn2 mcn3几个排列好位置.
3.主场景第一帧上加as:
function map(Obj, d, p, n) {//建立地图,也就是达到填充目的
var tempx = p.x;
var tempy = p.y;
for (var i = 1; i<=n.x*n.y; i++) {
attachMovie(Obj, "mc"+i, i);
var t = this["mc"+i];
t._x = tempx;
t._y = tempy;
tempx += d.x;
if (i%n.x == 0) {
tempx = p.x;
tempy += d.y;
}
}
}
var n = {x:10, y:8};//单元格数量
var d = {x:mc._width, y:mc._height};//单元格大小
var p = {x:250-n.x*d.x/2, y:200-n.y*d.y/2};//位置
map("mc", d, p, n);
for (var i = 1; i<=3; i++) {
_root["mcn"+i].onPress = function() {//填充
var myObj = new Object(this._name);
map(myObj, d, p, n);
};
}
mc.onPress = function() {//清除,实质是填充表格
map("mc", d, p, n);
};