神奇克隆----Flash 残影效果
中华网科技 http://tech.china.com
2005-07-06 11:55:34
|
|
|
在开始之前,我先问朋友们一个问题,在Flash 中假如要做一些残影效果,应该如何操作?你可能会不假思索的告诉我,使用 Alpha 透明叠加!先做一个原始物件,然后在场景中复制一个,并调整与原始物件的位置,降低透明度,依次类推,逐渐透明。恩!非常正确,这样确实可以达到目的,但是,如果象下图(图1)这样的一个效果,你觉得因该叠加多少才比较合适呢?
如果我们用老办法来达到范例中的效果恐怕其过程不会令人愉快,但是,不用担心,我们有更简捷有效的途径,只需要编写几行代码就可轻松实现。
这就是本文所要讲的 Flash Actions 中的一个指令 duplicateMovieClip (复制影片夹子) 通过它,我们可以复制任意多个副本并对其控制。
Ok! 我们实际操作吧。运行 Flash, 建立新文件,然后选择 Insert 菜单下的 New Symbol 建立一个新的 Movie Clip (注:本文后面出现的简称 MC 表示 Movie Clip) 然后随便敲几个文字,回到主场景,按 Ctrl+L 打开Library 面板,将刚才建立的 MC 拖至场景合适位置,然后按 Ctrl+I 打开 Instance 面版给MC赋予名称“Test” . Actions 对于物件的控制都是根据名称来确定目标的,所以命名就非常重要,而在Instance赋予的名称是区别于Library 面板里的名称的,刚入门的朋友需要注意。
现在建立一个新层,在第一桢点右键选择弹出菜单的 Actions 项打开 Actions面板。点击Actions 面板左上角的加号按扭,选择 Actions 下的 duplicateMovieClip ,这时面板下半部分出现设置栏,在 Target 项填入 test ,这就是我们要复制的MC名称。在New Name 处填 newmc ,这个名称赋予新出现的 MC 副本。在 Depth 处写 1。这段代码表示我们已经成功复制了一个 Test MC 的副本并赋予了一个新名称 newmc, 那么,我们还需要对newmc 进行一些设置。再此点击Actions 面板左上角的加号按扭,选择 Actions 下的 SetProperty ,然后在面板下部的Property 项选择 _alpha(Alpha) ,在Traget 定义 newmc, 在value 处填 60。 可以是从0到100的任意数字,表示不同的透明度。
透明的设置完成,现在要对其进行位置控制,再次设置选择 SetProperty ,在Property 处选择 _xscale(X Scale) ,Traget 定义 newmc, Value 处写150。表示位置,也可以是其他数字。同样方法在设置 _yscale(Y Scale) 。如果用户在操作时 Actions 面板没有出现文中的项,请点击Actions 面板右上角的右箭头,在弹出的菜单中选择 Normal Mode.,完成后你的 Actions 面板应该类似下图(图2)
设置完成以后的所有代码如下:
duplicateMovieClip ("test", "newmc", 1);
setProperty ("newmc", _alpha, "60");
setProperty ("newmc", _xscale, "150");
setProperty ("newmc", _yscale, "150");
当确定操作无误后关闭 Actions 面板按 Ctrl+Enter 测试影片,因该可以看到复制出的一个MC,如果你做一个简单的Motion变化放在MC Test 里在看看效果是什么样?或者对那些参数设置不同数值以观看不同效果,直到熟练使用为止。
在这里,我要向你表示祝贺,你已经基本掌握了 duplicateMovieClip 的操作。但是目前我们只复制出了一个副本,如果要复制多个副本达到象范例中那样的效果改怎么办?其实只要增加一小段代码并做相应的修改即可完成。
我们实际做一次,将刚才做的测试影片关闭,建立一个新文件,创建一个MC并在其中输入文字 “Flash.com” ,设置一个简单的Motion变化。然后将其拖入场景中并赋予名称“only”
建立一个新层,打开 Actions 面板。选择 Actions 下的 For命令,设置Init 为i=0,Condition为 i<15 Next 为 i++ ,在选择Actions下的 Set Variable ,并在其 Veriable处设置 newmc. Value 处写 (‘only‘ add i) 并记得勾选右侧的 Expression 项。然后我们设置下面的复制命令和属性命令,而 Value 处的填写也与前稍有不同。全部代码如下:
for (i=0; i<15; i++) {
newmc = (‘only‘ add i);
duplicateMovieClip ("only", newmc, i);
setProperty (newmc, _alpha, 15-i/2);
setProperty (newmc, _xscale, 100+i*4);
setProperty (newmc, _yscale, 100+i*10);
}
我们来比较下这次的代码与前面的区别,首先多出了for (i=0; i<15; i++) { newmc = (‘only‘ add i); 语句,其中 i<15 表示复制的个数,而 newmc 则是MC only加上 i 完成,也就是说,我们通过这段语句让 Actions 来控制复制的个数和排序名称,后面诸如_alpha 的 Value 15-i/2也与其类似,逐个降低透明度。
当操作完成并确认代码无误后关闭 Actions 面板并按 Ctrl+Enter 测试,你就可以看到类似范例中的效果了。当然,这些效果也不是一成不变的,还记得我们 SetProperty 时哪个下拉菜单吗?里面的选项可不止 Alpha 和 X ;Y这几项哟。通过选择不同的项我们可以搭配出很多不同的效果,如下图:(图3)
好了,到这里本文也该结束了,这里所讲的duplicateMovieClip也只是众多Actions语句中的一种, Flash 还有其他许多充满神奇魅力的 Actions 等我们去发掘。
|