今天看了网友用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); };
|