搜索文章:

首页  |  Java技术  |  Asp.net  |  Asp编程  |  VC/C++  |  Delphi  |  VB编程

Director8制作模拟刮胡子演示程序(二)


制作方法如下: 所需的素材:
一张没有刮胡子的照片位图,和一张同一个人刮完胡子的照片位图。(为了版权问题,我将脸部部分去掉,保留胡须部分的位图图案。)见图如下:


图形 1 face.jpg 图形 2 faceoff.jpg   接着我们开始介绍程序部分,这段程序非常的短小,核心部分的代码总共 6 行。然是为了理解这六行代码,你需要了解 director 8 新增加的 image lingo 的一个核心函数,这就是 copyPixels
copyPixels 的功能就是将位图数据从一个 image 复制到另一个 image。
现在任何一个 director 角色(member)都有一个 image 的属性,这是很多人忽略的地方。这个 image属性是内存中的一个图形对象的引用,而这个图形对象是角色成员的一个图形表示。角色成员可以是 位图,flash 角色,文字角色,甚至是舞台 stage. 我把刚刚导入的两个位图角色起名为 source (刮完胡子的照片位图 face.jpg)和 targer (未刮完胡子的照片位图 faceoff.jpg) 在 director 中角色分布图如下:

control + M 打开 director 中的消息窗口,输入
put member("source").image
n <image:1d151c> -- 1d151c 就是该 image 对象在内存中的地址。 而 image 属性是对实际数据的一个引用。而 image 图形对象是角色成员在内存中的实际数据。
任何对 image 对象的改动都是对 cast 中相应的原始角色的改动。这一点要注意,除非 image 对象是你自己创建的而且和角色成员不相关联,否则必须注意不要意外改动的原始角色成员。
你可以调用 image() 函数来创建自己的对象。实例如下:
image (width, height, bitdepth)
thisImage = image (320,240,16)
你现在创建了一个宽为 320 pixel 高为 240 pixel ,位深为 16 bit 图形对象。 你可以用 copyPixels 函数来给图形对象添加数据。该函数的格式如下(这是本程序的关键):
targetImage.copyPixels(sourceImage, destinationRect, sourceRect, <parameters>)
该函数功能是通过目标图形对象调用 copyPixels 函数,将 源图形对象,从源图形对象的矩形区域 sourceRect 复制到 目标图形对象的矩形区域destinationRect(出处:风闪网路学院)
相关文章:
© 2006   www.java-asp.net