用户登陆:
设为首页 | 加入收藏 | 免费邮箱
建站学院: 建站心得 | 搜索优化 | 建站点子 | 网站推广 | 网站推荐 | 企业新闻 | 人物新闻 | 网媒内幕 | 域名相关 | 热门专题 | 本站作品
设计学院: 网页设计 | 平面设计 | 网络编程 | 多媒体类 | 数据库类 | 服务器类 | 操作系统 | 联盟新闻 | 联盟介绍 | 联盟点评 | 网赚技巧
模板下载: 旅游度假 | 饮食食品 | 公司展示 | 学校教育 | 文化艺术 | 金融财经 | 儿童卡通 | 体育运动 | 服饰品牌 | 爱情交友 | 游戏娱乐
您现在的位置: 星星雨设计站 >> 设计学院 >> 多媒体类 >> Flash >> 教程正文
Flash As基础教程:Flash AS画线方法(下)
作者:佚名    教程来源:不详    点击数:    更新时间:2007-11-19

MovieClip.beginFill(rgb, alpha)

这个指令用来设定“虚拟钢笔”所绘制出的封闭的区域的填充颜色和不透明度,如果没有指定lineStyle的rgb和alpha的值则线条是不可见的。

RGB:用来设定封闭区域的填充颜色,和上边的lineStyle的设定方法一样都是使用16进制代码来表示。如果没有指定颜色则填充为黑色。

Alpha:和lineStyle的意义相同,不再细述。

实例说明:

如同lineStyle,你可以将rgb, alpha的值缺省而使用默认值。它需要配合使用 lineTo 或 curveTo (这个以后将讲道) 来定义封闭区域的各个顶点位置(也就是围成这个封闭区域的线条的交点位置)从而知道这个封闭区域的形状、大小以及位置。举一个简单的例子:

_root.beginFill(0x00FF00);

_root.moveTo(100,100); // this is the origin

_root.lineTo(200,100);

_root.lineTo(200,200);

_root.lineTo(100,200);

这段as将生成一个绿色的正方形,四个顶点的坐标分别为:

(100,100);(200,100);(200,200);(100,200)。

我们可以通过定义lineStyle来扩展一下

on (release) {

_root.lineStyle(0x0000FF);

_root.beginFill(0x00FF00);

_root.moveTo(100,100); // this is the origin

_root.lineTo(200,100);

_root.lineTo(200,200);

_root.lineTo(100,200);

}

这样就可以得到一个边框为1像素的蓝色的布透明的边框,其他各项参数不变。

但是,我强烈推荐通过使最后所画的直线回接到图形的出发点的方式来封闭填充图形。有关上面的代码的另外一个问题是填充是从左开始的,后面每遇到一个lineto 语句都会继续改变。另外一种可能引起麻烦的情况是,在勾画填充的代码中,每加入一个moveto语句都会使原来的填充自动封闭而重新开始一个新的填充。运行下面的代码来看一下是怎样的情形, (也就是说但如果你在as中没有闭合所绘制的路径的话,程序就会自动的将第一个“点”和最后一个“点”连接起来使得路径闭合以得到一个封闭的区域。)看如下代码:

_root.beginFill(0x00FF00);_root.moveTo(100,100); // 这是原点

_root.lineTo(200,100);

_root.lineTo(200,200);

_root.moveTo(100,200); // 闭合第一个填充区域并且开始一个新的

_root.lineTo(200,300);

_root.lineTo(100,300);

这样我们可以得到两个等边三角形。

MovieClip.endFill()

这个指令没有附带参数,它声明结束一个beginFill指令并且清除早先对“钢笔”的种种设置,它不能单独出现只能和beginFill指令成对出现。当然你可以不使用它就像上边的as一样,我们建议你养成使用endFill的好习惯。下边的as将绘制一个正方形:

_root.beginFill(0x00FF00);

_root.moveTo(100,100); // 定义了原点位置

_root.lineTo(200,100);

_root.lineTo(200,200);

_root.lineTo(100,200);

_root.lineTo(100,100); // 闭合路径

_root.endFill(); // 结束Fill

这是段很工整的as。

下面来做一个可以脱拽三个句柄来实时改变三角形的形状、位置、大小等的例子。下边是核心代码:

// 在舞台上放置3个句柄来定义出三角形的各个顶点

_root.attachMovie("squareHandle", "h1", 5);

_root.attachMovie("squareHandle", "h2", 6);

_root.attachMovie("squareHandle", "h3", 7);

h1._x = 50;

h1._y = 150;

h2._x = 250;

h2._y = 150;

h3._x = 150;

h3._y = 50;// 创建一个空的MC来放置他们

_root.createEmptyMovieClip("mc", 1);

// 定义函数

drawfunction draw() {

// 清除以前的填充设置

mc.clear();

// 设置填充的各项参数

mc.beginFill(0x0000FF, 20);

// 根据3个句柄的位置绘制出三角形

mc.moveTo(h1._x, h1._y);

mc.lineTo(h2._x, h2._y);

mc.lineTo(h3._x, h3._y);

mc.lineTo(h1._x, h1._y);

// 结束Fill

mc.endFill();

}

// 使函数draw每隔25毫秒刷新一次

setInterval(draw, 25);

// 完成as

MovieClip.clear()

在上边的as中我们遇到了这个新的指令mc.clear();它的作用就是清除mc。包括对这个mc本身的设置和mc中所包含的物件,并且将虚拟钢笔的各项参数恢复到默认值。

举例说明:

在本文的开始我们就已提到及时清除绘制过的、没有用的线条或形状的必要性,使用clear可以及时的释放内存空间而不至于造成系统崩溃。但由于它清除了所有的物件,当你想要保留某个物件的时候你就不得不再次把它“绘制”出来。

下边是例子:

SWF结果(下载请用鼠标右键点击选择“目标另存为”)

发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口教程录入:冰河    责任编辑:冰河 
  网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
最新热门
最新推荐
| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明