Director 8制作模拟刮胡子演示程序

2016-03-18 15:56 60 1 收藏

下面图老师小编跟大家分享一个简单易学的Director 8制作模拟刮胡子演示程序教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!

【 tulaoshi.com - 设计软件 】


  Director 8 相对于 director 7 有很多增量型的改动,其中对于 lingo 程序员来说,最引人注目的就是增加了相关的 image lingo 指令。有了它,我们可以做很多以前用 director 7 所无法做到的效果,例如你可以自己编写一些 transition 过渡效果,还有你还可以编写类似于 photoshop 的滤镜效果。这也进一步体现出 director 相对于 Flash 的优势所在--即:对于位图的强大处理能力。在这里我们将领略一下新增加的 image lingo 命令带来的强大功能。

有很多人在论坛上讨论 director 与 flash 孰优孰劣,无论是国内论坛还是国外讨论组,情况都是相同的。双方的拥护者都尽可能的说服对方自己喜欢的软件是最棒的,其实在很多情况下这种争论是没有任何意义的。我本人两种软件都使用,我喜欢用 flash 来做简单的动画角色,然后导入 director ,而不是象以前那样全部在 director 中做 film loop 动画。做动画方面, director 确实不如 flash, 但是我还是喜欢使用 lingo 来编写程序。所以我不会象一个真正的 flasher ("闪客")那样不停的发掘 flash 的潜力来做出一切效果(尽管有的效果做出来很勉强,或是效率太低,性能较差)。 最近我通过做一个剃须刀演示项目,进一步验证了 director 在处理点阵图像方面的确优于 flash。

其实这个项目很简单: 通过在网页中拖动剃须刀,将一个的人的面部胡须刮干净。
这个项目最开始的想法是用 flash 来做。我们的 flash 技术人员最开始的想法是,将这个人脸部胡须部分的照片图案(矩形区域),细致切分,然后将同一个人的脸部没有胡须的照片(为了达到头部图案完全吻合,我们是在同一张照片上通过 photoshop 做添加胡子的处理)同样分割为很多相同的小块,然后作为元素导入 flash。这样有胡须的部分分为很多小块,导入 flash ,然后相同的无胡须的部分也分为相同个数的小块导入 flash ,然后将对应的每一个小块做一个 MC.
这个 MC 的第一帧放置有胡须的切块图案,第二帧放置无胡须的切块图案,mc 的第一帧放置 stop action, 当鼠标 over 的时候,让这个 mc 跳动到第二帧没有胡须的小切块。这样,当用剃须刀做的 mc 替代鼠标后,当它滑动到这些MC(有胡须的小切块图案)的时候,他们就会跳到相应第二帧(也就是没有胡须的小切块图案),这样就可以完成刮胡子的演示了。
方法是很简单的: 但是实际做起来却出现了如下的问题。
1:通常这样的切图文件必须非常细,才可以满足客户的要求,然后切图越细致就意味在 flash 中要作更多的 mc 和 symbol。 这样不但增加了文件的大小,而且也使得文件运行特别慢。
2:由于这种方法制作的切图大小是开始定好的,如果希望将切块更加细分的话,你必须从新切图和导入Tulaoshi.Com。必须重复劳动。
3:这种方法制作 swf 文件通常比 director 制作的 dcr 文件大不少(至少是一倍)。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/shejiruanjian/)

而采用 director 8 的 image lingo 指令,你可以完全的避免上述问题。

制作方法如下:

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

图形 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 中角色分布图如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/shejiruanjian/)

control + M 打开 director 中的消息窗口,输入
put member("source").image
n -- 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, )
该函数功能是通过目标图形

12下一页

来源:http://www.tulaoshi.com/n/20160318/1888605.html

延伸阅读
标签: 健康常识
布里斯托尔大学的研究团队,对2438名威尔士中年男子进行观察,分析刮胡子和心脏冠状动脉疾病与中风的关联。研究人员指出,不是每天刮胡子的男士更容易有心脏病或中风。在这项为期20年的研究中,已经有835人死亡。而总体来看,不是每日刮胡子的人有45%故去,而至少每日刮一次胡子的人则有31%辞世。不是每日刮胡子者死亡人数多,与他们吸烟者...
标签: 美容护肤
润湿 1 就和理发前要洗头一样,水分是刮胡子的关键,能让胡须柔软70%。理想剃须时间是洗澡后的几分钟,这时候你的毛孔充分舒张而且脸并不滴水。 涂泡沫 2 传统剃须固然有效率,但是刮过皮肤后会有火辣辣的不舒适感。选择优质的剃须刀和润滑皮肤的药物不仅能减少刀刃与皮肤的摩擦力,使人没有痛感而且能更好的清洁面部,增加我们刮胡子的...
标签: 男士美容
刮胡子时间选错伤身 洗脸刷牙刮胡子,这是很多男性早起最先做的三件事。但你有没有发现,刚刚刮的胡子不一会儿就又泛起了青色,这多是因为刮胡子的时间选错了。 睡眠中,皮脂腺分泌旺盛,使得毛发生长迅速。经过一夜“疯”长,早晨正是最佳刮除时机。而且这时的皮肤状态比较放松,刮胡子时不易刮伤皮肤。但一起床就...
标签: 男人 男人养生
不常刮胡子 男人多命短 近年来,男性疾病不断上升,寿命的平均年龄也在逐年下降。其中一项研究表示:男人不常刮胡子的话,死亡率容易上升!研究人员指出,不是每天刮胡子的男士更容易有心脏病或中风。 研究人员在美国传染病学期刊(Ameri-canJournalofEpidemiology)发表报告称,在这项为期20年的研究中,已经有835...
标签: 男人 男人养生
男人应当如何正确刮胡子 刮胡子是男士日常生活中必不可少的一件事情,但许多男士都习惯在洗完脸或洗完澡后立即刮胡子。对此,相关专家表示,如果男士使用的是电动剃须刀,最好是刮完胡子后再洗脸或洗澡,这样更容易将胡子刮干净。 北京大学第一医院皮肤科副主任医师杨淑霞在接受《生命时报》记者采访时表示,如果是用刀...

经验教程

198

收藏

61
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部