|
之前写过在flashmx2004中平铺背景的方法,虽然它也是有效果的,但相对使用flash8时还是显得有些复杂.这次介绍的是flash8中的MovieClip的新方法MovieClip.beginBitmapFill()法.使用这种方式来平铺背景会非常的简单.下面开始.
演示文件:
1. 我们需要先准备一张小图.当前我们使用的是一张小的gif图像如下图所示:

如果你想测试可以直接下载些图像来测试.
2. 新建一个flash文档,大小随意,将我们选定的这张图像导入到库中,并在库中直接为此图像设置链接.当前我们设置为pattern1,基本方法是选中库中刚导入的图像,右击选择链接,如下图所示:

3.完成这一步操作之后,按下来我们准备使用代码来平铺背景.在前面我们提到过我们将使用MoiveClip.beginBitmapFill()方法.我们先看一下beginBitmapFill()方法: public beginBitmapFill(bmp:BitmapData, [matrix:Matrix], [repeat:Boolean], [smoothing:Boolean]) : Void beginBitmapFill方法是用位图来添充绘画区域,也就是说它需要先有一个绘画区域,它有四个参数,bmp参数可以是一张透明或不透时的图像,matrix参数主要用来用bmp进行变换操作,包括旋转,缩放和移动,后面两个参数repeat是设定是否重复, smoothing参数是设计是否平滑,默认为false即不平滑.针对于beginBitmapFill()最基本的应用是你可以只使用bmp参数.ok.下面我们准备编码. 4. 选中场景中的第一帧,在其中加入如下代码:
//导入flash8 bitmapData类 import flash.display.BitmapData; //创建bitmapData实例,这里使用的是flash8的loadBitmap.如不清楚可以//参看本站的flash8 bitmapData教程 var tile:BitmapData = BitmapData.loadBitmap("pattern1"); //使用beginBitmapFill()方法开始添充. this.beginBitmapFill(tile); //下面一段是根据屏幕的大小来绘制绘画区域,用以beginBitmapFill来添充. this.lineTo(Stage.width, 0); this.lineTo(Stage.width, Stage.height); this.lineTo(0, Stage.height); this.lineTo(0, 0); this.endFill();
5. 现在测试你的影片,你就可以看到如下图所示的效果了.

6.呵呵,看上去的确很简单,只需要几行代码即可,相对于flashmx2004的平铺效果来说,现在你不在需要计算屏幕的宽高能容纳多少张小图了.ok.现在点击右上角的窗口放大按钮,我们发现只有中心区域有添充,四周并没有,也就是说它没随屏幕的变化而进行重绘,这并不是我们想要的,对于背景来说,需要让它随着屏幕大小的变化而变化. 接下来我们继续添加代码. 7.要想让它随着屏幕的大小变小,我们需要使用flash8中的Stage类来处理.如下代码:
Stage.scaleMode = "noScale"; Stage.align = "TL"; var stageListener:Object = new Object(); stageListener.onResize = function() {
上一篇: Flash AS曲线的绘制
下一篇: Flash:80行AS代码打造奇幻光影
|