圖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所示。