2006/02/16 | 图片模糊过渡效果的例子——Lab No.1
类别(Flash课件设计) | 评论(0) | 阅读(451) | 发表于 18:52
最初设想建立一个实验室专栏,用来分析网友们提供的精彩Flash效果,但因为Blog 新开辟的原因,专栏还没有认真的划分,所以直到现在还没有一个真正意义上的开始。
今天就以一个简单的例子来开始我的实验室实例分析专栏吧。首先说一下必备的工具,包括 Flash MX 或 Flash 8.0 ,还有就是《硕思闪客精灵》,该软件可以直接读取 swf 文件的内部结构,并且还有反向还原为 fla文件的功能,因此,我不打算再提供相关 flash 的原代码了(也为了节省博客空间),需要原代码的朋友请留言,根据情况,我再决定是否上传完整的原代码。
今天的实例是一个图片模糊过渡的效果,图片如下:

Flash 动画

用闪客精灵打开该文件,点击动作一栏,可以看到主要的代码如下:
// Action script...

// [Action in Frame 1]
tu = new Array("a", "b", "c", "d", "e", "f", "g", "h");
for (i = 1; i <= 8; i++)
{
_root.attachMovie(tu[i - 1], "h" + i, i);
with (_root["h" + i])
{
_x = 250;
_y = 90;
_visible = false;
} // End of with
} // end of for
i = 1;
n = 0;

// [Action in Frame 2]
_root["h" + i]._visible = true;
_root["h" + i]._alpha = n * 5;
n++;

// [Action in Frame 3]
if (n < 21)
{
gotoAndPlay(2);
} // end if

// [Action in Frame 5]
_root["h" + i]._alpha = n * 5;
n--;

// [Action in Frame 6]
if (n > 0)
{
gotoAndPlay(5);
}
else
{
gotoAndPlay(2);
i++;
if (i > 8)
{
i = 1;
} // end if
} // end if
//////////////////////////

frame 表示 帧,[Action in Frame 1] 表示第一帧里的动作。
先复习一下 attachMovie 函数的用法:

MovieClip.attachMovie()
用法
my_mc.attachMovie(idName, newName, depth [, initObject])
参数
idName 库中要附加到舞台上某影片剪辑的影片剪辑元件的链接名称。这是在"链接属性"对
话框中的"标识符"字段中输入的名称。
newname 附加到该影片剪辑的影片剪辑实例的唯一名称。
depth 一个整数,指定 SWF 文件所放位置的深度级别。

/////////////////////////////
对照程序中的用法:
_root.attachMovie(tu[i - 1], "h" + i, i);
表示将数组中 tu[i-1] 中包含的 idName 所代表的MC,以"h"+i 为新名称,附加到舞台上。 数组中分别包含了全部图片的链接名称,在应用时,应先给图片加上链接名。

该段代码用 if 语句和帧跳转语句构成循环,当n 小于21,也就是说透明度小于 n*5 ,也就是100,时,反复在第二帧和第三帧之间循环。透明度到了一百以后,进入到第五帧,这里可以多加一些空白帧,以使得图片多显示一会。之后在第五帧和第六帧之间产生循环,透明度逐渐减小,当n-- 等于零时,显示数组的下一张图片,并且回到主场景的第二帧。这就是该段代码的循环过程。
因为第一帧中 令 i=1 ,n =0,所以在最外围的循环时,是从第二帧开始的,这样,数组中下一张图片才得以显示,若要从第一帧开始循环,可以采用的方法有两个,一是在MC 的 Load 事件中给i 初始值,另一种方法是用 #initclip 和 #endinitclip 将整段代码包含起来,所起到的作用都是只在开始时执行一次。
0

评论Comments