學(xué)習(xí)AS3.0菜鳥(niǎo)起飛之—載入庫(kù)中的影片剪輯
在Flash創(chuàng)作環(huán)境中,可以從庫(kù)中拖拽影片剪輯到舞臺(tái)上,使它們出現(xiàn)在SWF文件中。當(dāng)使用ActionScript來(lái)添加影片剪輯時(shí),實(shí)際上也是將影片添加一個(gè)實(shí)例到時(shí)間軸上。幀是時(shí)間軸的一部分,你可以使用動(dòng)作面板將as代碼與幀關(guān)聯(lián)。因此時(shí)間軸成了用as代碼添加的顯示對(duì)象的父容器,除非另一個(gè)顯示對(duì)象被指定。
添加一個(gè)影片剪輯到當(dāng)前時(shí)間軸:
下面的例子從.fla庫(kù)中導(dǎo)入一個(gè)名為“鷹”的影片剪輯
1、新建Flash文檔(AS3),存盤(pán)。
2、打開(kāi)“鷹”的影片剪輯,復(fù)制到庫(kù)中,(在這里不講解影片剪輯制作的過(guò)程)。
3、右鍵點(diǎn)擊“鷹”影片剪輯,在下拉菜單中點(diǎn)擊【屬性】打開(kāi)屬性面板,勾選【為AstionScript導(dǎo)出】在類(lèi):文本框中輸入:hawk,按【確定】如圖:
4、返回場(chǎng)景1,選中圖層1的第幀,按F9鍵,打開(kāi)動(dòng)作面板輸入代碼:
var myhaw:hawk = new hawk();
addChild(myhaw);
第一行用var聲明一個(gè)實(shí)例名:myhaw給影片剪輯。
第二行用addChild()命令將實(shí)例myhaw加入顯示列表。
提示:當(dāng)沒(méi)有明確指定顯示容器時(shí),影片剪輯實(shí)例是被添加到時(shí)間軸的當(dāng)前幀。
我們按Ctrl+Enter組合鍵,測(cè)試一下,影片已經(jīng)顯示在屏幕上了。參見(jiàn)未命名1.fla文檔
5、我們已經(jīng)把影片剪輯添加到時(shí)間軸上了,下面我們繼續(xù)添加代碼,做一個(gè)鷹跟隨鼠標(biāo)移動(dòng)。打開(kāi)動(dòng)
作面板,加入下面代碼:
var myhaw:hawk = new hawk();
//注冊(cè)鼠標(biāo)單擊事件偵聽(tīng)器
stage.addEventListener(MouseEvent.CLICK, addhawk);
//定義偵聽(tīng)器函數(shù)
function addhawk(e:MouseEvent):void {
addChild(myhaw);
}
//注冊(cè)鼠標(biāo)移動(dòng)事件偵聽(tīng)器
stage.addEventListener(MouseEvent.MOUSE_MOVE, movehaw);
//定義移動(dòng)事件偵聽(tīng)器函數(shù)
function movehaw(e:MouseEvent):void {
//使myhaw位于鼠標(biāo)位置
myhaw.x = stage.mouseX;
myhaw.y = stage.mouseY;
}
上面的示例使用了事件的處理和函數(shù)的聲明。參見(jiàn)未命名2.fla文檔
下面是一個(gè)影片剪輯拖放的示例:
具體創(chuàng)建過(guò)程不再重復(fù),參照上面示例
不再?gòu)U話,直接上代碼:
//聲明實(shí)例
var myhaw:hawk = new hawk();
//添加到顯示列表
addChild(myhaw);
//myhaw位置(x,y坐標(biāo))
myhaw.x = 100;
myhaw.y = 100;
//注冊(cè)鼠標(biāo)按下事件偵聽(tīng)器
myhaw.addEventListener(MouseEvent.MOUSE_DOWN, draghaw);
//注冊(cè)鼠標(biāo)釋放事件偵聽(tīng)器
myhaw.addEventListener(MouseEvent.MOUSE_UP, drophaw);
//定義鼠標(biāo)按下事件偵聽(tīng)器函數(shù)
function draghaw(dragevent:MouseEvent):void {
//開(kāi)始拖動(dòng)
dragevent.currentTarget.startDrag();
}
//定義鼠標(biāo)釋放事件偵聽(tīng)器函數(shù)
function drophaw(dropevent:MouseEvent):void {
//停止拖動(dòng)
dropevent.currentTarget.stopDrag();
}
按下鼠標(biāo)拖拽物體,當(dāng)釋放鼠標(biāo)時(shí),物體會(huì)停止跟隨指針。參見(jiàn)未命名3.fla文檔
添加一個(gè)影片剪輯到一個(gè)容器
DisplayObjectContainer對(duì)象(和繼承DisplayObjectContainer類(lèi)所創(chuàng)建的對(duì)象)可以包含零個(gè)或多個(gè)顯示項(xiàng)。
就像移動(dòng)容器一樣,所有容器對(duì)象中的顯示項(xiàng)相對(duì)容器移動(dòng)。
示例:
1、新建Flash文檔(AS3),打開(kāi)未命名1.fla文件。
2、使用庫(kù)的下拉菜單來(lái)選擇“未命名1.fla”的庫(kù)。如圖:
3、將“鷹”影片剪輯從庫(kù)中拖放到舞臺(tái)上。
4、通過(guò)庫(kù)的下拉菜單選擇回到新文件的庫(kù)。如圖:
注意:“鷹”的影片剪輯及相關(guān)素材已經(jīng)列在當(dāng)前文件的庫(kù)中了。
5、刪除舞臺(tái)上的影片剪輯。
6、選擇時(shí)間軸第1幀,命名:as,打開(kāi)動(dòng)作面板,輸入代碼:
//聲明實(shí)例
var myhaw:hawk = new hawk();
//添加到顯示列表
addChild(myhaw);
//myhaw位置(x,y坐標(biāo))
myhaw.x = 100;
myhaw.y = 100;
//注冊(cè)鼠標(biāo)按下事件偵聽(tīng)器
myhaw.addEventListener(MouseEvent.MOUSE_DOWN, draghaw);
//注冊(cè)鼠標(biāo)釋放事件偵聽(tīng)器
myhaw.addEventListener(MouseEvent.MOUSE_UP, drophaw);
//定義鼠標(biāo)按下事件偵聽(tīng)器函數(shù)
function draghaw(dragevent:MouseEvent):void {
//開(kāi)始拖動(dòng)
dragevent.currentTarget.startDrag();
}
//定義鼠標(biāo)釋放事件偵聽(tīng)器函數(shù)
function drophaw(dropevent:MouseEvent):void {
//停止拖動(dòng)
dropevent.currentTarget.stopDrag();
}
7、新建圖層,并把它拖到as層的下方,重命名為text。選中第1幀,使用文字工具在舞臺(tái)上輸入:點(diǎn)擊并移動(dòng)mySprite,到(150,200)坐標(biāo)位置。(mySprite是影片剪輯的容器)
8、測(cè)試影片。參見(jiàn)未命名4.fla文件
Flash Player播放SWF文件,默認(rèn)情況下,影片剪輯顯示在舞臺(tái)的左上角。代碼中一個(gè)事件偵聽(tīng)器用于響應(yīng)鼠標(biāo)點(diǎn)擊,當(dāng)點(diǎn)擊舞臺(tái)的任何地方時(shí),影片剪輯的注冊(cè)點(diǎn)都被重新定位于距離舞臺(tái)上方150個(gè)像素,距離舞臺(tái)左邊200個(gè)像素的位置。
|
新聞熱點(diǎn)
疑難解答
圖片精選