Re: [問題] flash 全景效果
※ 引述《sunnyeva (一蓑煙雨任平生)》之銘言:
: 大家好
: 我是flash新手 還很嫩 只會比較基礎的動畫跟一點點AS
: 最近想要做180度的全景效果
: 類似以下這個範例
: http://flash.xoboss.com/flash/original1.html
: 但是google了很多教學
: 還是不太了解
: 請問有人可以提供詳細一點的作法嗎?
: 另外問這個一定要用很多action script嗎?
: 有沒有更適合初學者理解 例如用動畫的觀念去做的呢?
: 懇請板上前輩們解答 謝謝!!
簡單的方法也是有的
只要將兩張一樣的圖頭尾接在一起
然後兩張圖同時往右邊做移動補間動畫
只要移到第二張圖的位置跟第一張圖一開始的位置一樣即可
接下來重覆播放就會一直不斷重覆出現
不過這個的缺點是因為最後一格跟第一格的畫面是重疊的,會感覺瞬間頓了一下
這時候只要在最後一格加上 gotoAndPlay(2);
跳過第一格,直接從第二格開始播,這樣子就會很順的一直往右播然後不間斷
如果是要能夠搭配滑鼠位置來做往左或往右播
則把上面從 2 張一前一後改成 3 張一前一中一後
如果滑鼠位置大於場景一半則往右播,小於場景位置一半則往左播
原始檔:http://www.megaupload.com/?d=NORBQ9KJ
程式碼大致如下:
//註冊 enterframe 事件
this.addEventListener(Event.ENTER_FRAME, slideEnterFrame);
function slideEnterFrame(e:Event):void {
//如果滑鼠的位置大於場景一半寬度
if(mouseX > stage.stageWidth / 2){
//圖往右邊跑,若目前播放影格到最後一格,則從第 2 格開始播
if(this.currentFrame == this.totalFrames){
this.gotoAndStop(2);
}else{
this.nextFrame();
}
}else{
//如果滑鼠位置場景小於場景的一半寬度
//如果目前影格數大於第 2 格,則往前播一格
//如果目前影格已經播放到第 2 格,則讓它跳至最後一格
if(this.currentFrame > 2){
this.prevFrame();
}else{
this.gotoAndStop(this.totalFrames);
}
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.83.114