万卷书   首页 > 电脑书籍 > Flash > Flash MX 新的闪烁世界(第四天)
 
  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();

}

}

上一页 下一页