图0(点击这里预览效果)
源文件下载:点击这里下载(25K, winzip压缩文件)
效果预览:点击这里预览
首先,设置场景的大小为700*200像素,背景色为白色,帧频为12fps。当然,用户可以根据自己具体的需要来设置场景的大小,但代码中的数值需要做相应的改变,这个笔者将会在文中做交代的。
1.按快捷键Ctrl+R导入4张图片,分别命名为“1”、“2”、“3”、“4”,如图1所示。
图1
2.创建一个名为“图片”的影片剪辑元件。按快捷键Ctrl+L打开“库”,把“库”中的“图片”拖入该元件场景的1至4帧中。接着按住Shift键点选第1帧和第4帧,再点选右键,在弹出的菜单中选择“拷贝帧”命令,再右键点选第5帧,在弹出的菜单中点选“粘贴帧”命令。注意:图片的左顶点要在场景中央的位置上。如图2所示。调节图片的位置可以按快捷键Ctrl+K打开“对齐”面板进行辅助设置。
图2
3.按快捷键Ctrl+F8创建一个名为“图片动画”的影片剪辑元件。在元件的编辑场景中创建一个“脚本”层和一个“图片”层。如图2所示。点选“脚本”层的第2帧并按F7键插入一个空白关键帧。右键点选该帧,按F9打开“动作”面板输入一下代码。这段代码主要是虚拟图片的三维效果,实现图片前后的层次感。
// 3d 转换
theta += _parent.speed;
xbit = Math.sin(Math.PI/180 * theta);
ybit = Math.cos(Math.PI/180 * theta);
// 加350使图片围绕场景中央旋转
this._x = xbit*this.radius+350;
this._y = 100;
this._alpha = 30+(ybit+1)*60;
this._xscale = ybit*this.panel+50;
this._yscale = this.panel+(ybit+1)*3+80;
// Math.round()是将参数 x 的值向上或向下舍入为最接近的整数并返回值
stack =Math.round((ybit+1)*radius*2);
if (stack==100)
// swapDepths()可以将一个影片移到另一个影片的上面或下面
this.swapDepths(stack);
4.按快捷键Ctrl+L打开“库”面板,把“库”中的“动画”元件拖入场景的“图片”层中。“动画”元件和场景的位置关系见图3所示。
图3
5.设置好“图片动画”元件后,在“库”中右键点击之,在弹出菜单中选择“连接”命令,并如图4所示设置。我们将在后面的代码中对该一片进行链接。
图4
6.回到主场景。创建一个“脚本”层和一个“图片”层。“图片”层中的的设置随意。点选“脚本”层的第1、2、3帧按F5键插入帧。新建一个“脚本”层,然后分别点选层中的第2、3帧并按F7键插入空白关键帧。分别点选“脚本”层中的3帧,按F9键打开“动作”面板,键入如下代码。
第1帧代码如下:
var num_img = 8;
for (i=0; i<num_img; i++) {
new_img = "img"+String(i);
this.attachMovie("img", new_img, i+1);
this[new_img].theta = i*360/num_img;
this[new_img].radius = 250;
this[new_img].my_img.gotoAndStop(i+1);
}
第2帧中的代码如下:
speed = _xmouse/80;
第3帧代码:
gotoAndPlay(2);
整个效果到这里就完成了,按快捷键Ctrl+Enter测试一下吧,相信效果一定会令你满意的,如图0所示。