作者sextitanic (阿信163)
看板Flash
标题Re: [问题] flash 全景效果
时间Mon Dec 5 23:19:05 2011
※ 引述《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