我們做一個(gè)動(dòng)畫短片的時(shí)候有沒有考慮怎樣使它倒轉(zhuǎn)播放呢?如果說短片里只有一個(gè)motion tween或者shape tween,那么很容易,一個(gè)revert frame就可以完成倒放。
但是一個(gè)動(dòng)畫短片里面往往不僅有前面提及的漸變動(dòng)畫而且還有幀動(dòng)畫,以及若干的層,那么這樣的動(dòng)畫短片要實(shí)現(xiàn)倒轉(zhuǎn)播放就不是一個(gè)簡單的 revert frame 命令就可以完成的。今天我要說的就是利用actionscript 來實(shí)現(xiàn)動(dòng)畫短片的倒轉(zhuǎn)播放控制。
演示效果如下:按“播放”按鈕,影片就會(huì)正常播放,按“倒帶”按鈕,影片就會(huì)倒轉(zhuǎn)播放,而且隨時(shí)有效!
原理很簡單,首先我們應(yīng)該有一個(gè)現(xiàn)成的動(dòng)畫短片,然后就是制作一個(gè)只含有AS腳本的MC ,該MC里的AS腳本能夠控制動(dòng)畫短片的倒轉(zhuǎn)播放和正常播放!在做2個(gè)按鈕來控制含有AS腳本的MC的動(dòng)作。
步驟一:在現(xiàn)有的動(dòng)畫短片中增加一個(gè)層:AS,在這個(gè)層上我們來放置一個(gè)只含有AS腳本的MC和2個(gè)控制該MC動(dòng)作的按鈕:“倒帶”和“播放”按鈕。圖中紅色圓圈內(nèi)已經(jīng)被鎖定的層就是我們要隨時(shí)使它正常播放和倒帶的動(dòng)畫短片。
步驟二:(只含有AS腳本的MC的制作)新建一個(gè)MC:控制。在layer1中插入5個(gè)關(guān)鍵幀,如下圖所示:
在*幀上寫入AS腳本:stop();
在第二幀寫入AS腳本:
tellTarget ("../") {
prevFrame();
}
//“../”表示是上一級的MC,我們也可以用_parent來代替,一樣的效果。
// prevFrame();的作用是停到上一幀去。
在第三幀寫入AS腳本:
call(2);
gotoAndPlay(2);
// call(2);調(diào)用第2幀的動(dòng)作
// gotoAndPlay(2);到第2幀并播放(這樣若從第二幀播放那么到第三幀時(shí)在返回到第二幀,就形成了一個(gè)循環(huán),從而達(dá)到使上一級MC倒轉(zhuǎn)播放的目的)
在第四幀上寫入AS腳本:
tellTarget ("../") {
nextFrame();
}
//“../”表示是上一級的MC,我們也可以用_parent來代替,一樣的效果。
// nextFrame();的作用是停到下一幀去。
在第五幀上寫入AS腳本:
call(4);
gotoAndPlay(4);
// call(4);調(diào)用第4幀的動(dòng)作
// gotoAndPlay(4);到第4幀并播放(這樣若從第四幀播放那么到第五幀時(shí)在返回到第四幀,就形成了一個(gè)循環(huán),從而達(dá)到使上一級MC正常播放的目的)
步驟三:回到Scene 1 在AS層上拖入“控制”MC到場景中,(注意:由于“控制”MC里面只有AS腳本沒有任何圖形元素,所以顯示為圖中紅色圓圈中的小點(diǎn)),同時(shí)賦予該MC一個(gè)instance 。
步驟四:在場景中拖入2個(gè)按鈕如下如所示:
在倒放按鈕“<”上加上AS 腳本:
on (release){
tellTarget("as"){
gotoAndPlay(2);
}
}
//讓MC:AS從第二幀開始播放,執(zhí)行“AS”中的腳本實(shí)現(xiàn)動(dòng)畫短片的倒轉(zhuǎn)播放。
在正常播放按鈕“〉”上加上腳本:
on (release){
tellTarget("as"){
gotoAndPlay(4);
}
}
// 讓MC:AS從第四幀開始播放,執(zhí)行“AS”中的腳本實(shí)現(xiàn)動(dòng)畫短片的正常播放。
現(xiàn)在測試看看是否成功?!源文件下載
但是一個(gè)動(dòng)畫短片里面往往不僅有前面提及的漸變動(dòng)畫而且還有幀動(dòng)畫,以及若干的層,那么這樣的動(dòng)畫短片要實(shí)現(xiàn)倒轉(zhuǎn)播放就不是一個(gè)簡單的 revert frame 命令就可以完成的。今天我要說的就是利用actionscript 來實(shí)現(xiàn)動(dòng)畫短片的倒轉(zhuǎn)播放控制。
演示效果如下:按“播放”按鈕,影片就會(huì)正常播放,按“倒帶”按鈕,影片就會(huì)倒轉(zhuǎn)播放,而且隨時(shí)有效!
原理很簡單,首先我們應(yīng)該有一個(gè)現(xiàn)成的動(dòng)畫短片,然后就是制作一個(gè)只含有AS腳本的MC ,該MC里的AS腳本能夠控制動(dòng)畫短片的倒轉(zhuǎn)播放和正常播放!在做2個(gè)按鈕來控制含有AS腳本的MC的動(dòng)作。
步驟一:在現(xiàn)有的動(dòng)畫短片中增加一個(gè)層:AS,在這個(gè)層上我們來放置一個(gè)只含有AS腳本的MC和2個(gè)控制該MC動(dòng)作的按鈕:“倒帶”和“播放”按鈕。圖中紅色圓圈內(nèi)已經(jīng)被鎖定的層就是我們要隨時(shí)使它正常播放和倒帶的動(dòng)畫短片。
步驟二:(只含有AS腳本的MC的制作)新建一個(gè)MC:控制。在layer1中插入5個(gè)關(guān)鍵幀,如下圖所示:
在*幀上寫入AS腳本:stop();
在第二幀寫入AS腳本:
tellTarget ("../") {
prevFrame();
}
//“../”表示是上一級的MC,我們也可以用_parent來代替,一樣的效果。
// prevFrame();的作用是停到上一幀去。
在第三幀寫入AS腳本:
call(2);
gotoAndPlay(2);
// call(2);調(diào)用第2幀的動(dòng)作
// gotoAndPlay(2);到第2幀并播放(這樣若從第二幀播放那么到第三幀時(shí)在返回到第二幀,就形成了一個(gè)循環(huán),從而達(dá)到使上一級MC倒轉(zhuǎn)播放的目的)
在第四幀上寫入AS腳本:
tellTarget ("../") {
nextFrame();
}
//“../”表示是上一級的MC,我們也可以用_parent來代替,一樣的效果。
// nextFrame();的作用是停到下一幀去。
在第五幀上寫入AS腳本:
call(4);
gotoAndPlay(4);
// call(4);調(diào)用第4幀的動(dòng)作
// gotoAndPlay(4);到第4幀并播放(這樣若從第四幀播放那么到第五幀時(shí)在返回到第四幀,就形成了一個(gè)循環(huán),從而達(dá)到使上一級MC正常播放的目的)
步驟三:回到Scene 1 在AS層上拖入“控制”MC到場景中,(注意:由于“控制”MC里面只有AS腳本沒有任何圖形元素,所以顯示為圖中紅色圓圈中的小點(diǎn)),同時(shí)賦予該MC一個(gè)instance 。
步驟四:在場景中拖入2個(gè)按鈕如下如所示:
在倒放按鈕“<”上加上AS 腳本:
on (release){
tellTarget("as"){
gotoAndPlay(2);
}
}
//讓MC:AS從第二幀開始播放,執(zhí)行“AS”中的腳本實(shí)現(xiàn)動(dòng)畫短片的倒轉(zhuǎn)播放。
在正常播放按鈕“〉”上加上腳本:
on (release){
tellTarget("as"){
gotoAndPlay(4);
}
}
// 讓MC:AS從第四幀開始播放,執(zhí)行“AS”中的腳本實(shí)現(xiàn)動(dòng)畫短片的正常播放。
現(xiàn)在測試看看是否成功?!源文件下載