| Ok,抓笔的人已经松开了吧。我们要在lineto的基础上改进一下,加入如下代码:
createEmptyMovieClip("drawobj", 1);
Movieclip.prototype.makeBox = function(x, y,
l) {
this.lineto(x, y+l);
this.lineto(x+l, y+l);
this.lineto(x+l, y);
this.lineto(x, y);
};
//init
with (drawobj) {
moveto(100,100);
beginfill(0x333333, 100);
linestyle(.1, 0x111111, 100);
makeBox(100,100,100);
endfill();
}
我们定义的makeBox如其名,就是画正方形的,它在我们的初始化部分会用到,l参数是边长。当程序初始化的时候,我们对drawobj进行操作,首先用moveto来改变它的位置,接着我们会用到fill;它包括两部分,一个是普通的beginfill,是设置填充的参数起点,当我们用makeBox画好了正方形后,必须要用到endfill才可以更新当前的fill,否则什么beginfill也没什么意义(虽然我不加也照样更新)。(图2)

(图2)
再接再厉,我们再结合另一个方法来看看程序作出来的图形的魅力。加入代码:
createEmptyMovieClip("drawobj", 1);
drawobj.linestyle(.1, 0x111111, 100);
for (var i=0; i<=50; i+=.1) {
with (drawobj) {
moveto(random(300),random(300));
beginfill(random(1048576),random(100));
curveto(i*random(10),i*random(10),i*random(10),i*random(10));
endfill();
}
}
|