其實就是要用AS3做一個永遠循環的場景
不過懶得把多餘的CODE拿掉了
改念就是用addChild把要重複的場景複製三個新增到舞台排好
用timer控制場景的移動
然後用goSpeed跟damp控制加速度
package{ import flash.display.*; import flash.events.*; import flash.utils.Timer; import caurina.transitions.Tweener; import caurina.transitions.properties.ColorShortcuts; ColorShortcuts.init() public class Main extends Sprite { var main1:MainMc = new MainMc(); var main2:MainMc = new MainMc(); var main3:MainMc = new MainMc(); var _TopWaku:TopWaku = new TopWaku(); var _btn_go:btn_go = new btn_go(); var _btn_back:btn_back = new btn_back(); var goSpeed:Number = 0.1; var damp:Number = 1.05; var timeCount:Number; var moving:Boolean = false; var timer:Timer = new Timer(1); public function Main() { var mod:ModelLocator = ModelLocator.getInstance(); main1.x = -1000; main2.x = 0; main3.x = 1000; this.addChild(main1); this.addChild(main2); this.addChild(main3); _btn_go.y = _btn_back.y = 357; _btn_go.x = 955; _btn_back.x = 2; _btn_go.addEventListener(MouseEvent.MOUSE_OVER,goMove); _btn_go.addEventListener(MouseEvent.MOUSE_OUT,goMoveStop); _btn_back.addEventListener(MouseEvent.MOUSE_OVER,backMove); _btn_back.addEventListener(MouseEvent.MOUSE_OUT,backMoveStop); this.addChild(_TopWaku); this.addChild(_btn_go); this.addChild(_btn_back); mod.addEventListener("biru_over",function(e:Event){Tweener.addTween(_TopWaku,{_brightness:-0.8,time:1,transition:"easeOutBack"});}); mod.addEventListener("biru_out",function(e:Event){Tweener.addTween(_TopWaku,{_brightness:0});}); timer.addEventListener(TimerEvent.TIMER,moveAct); } private function mainInit(){ main1.x = -1000; main2.x = 0; main3.x = 1000; } private function goMove(evt:MouseEvent){ moving = true; timer.start(); } private function backMove(evt:MouseEvent){ moving = false; timer.start(); } private function goMoveStop(evt:MouseEvent){ goSpeed = 0.1; timer.stop(); } private function backMoveStop(evt:MouseEvent){ goSpeed = 0.1; timer.stop(); } public function moveAct(e:TimerEvent){ if(goSpeed<1.5){ goSpeed *= damp; }else{ goSpeed = 1.5 } if(moving){ main1.x -= goSpeed; main2.x -= goSpeed; main3.x -= goSpeed; }else{ main1.x += goSpeed; main2.x += goSpeed; main3.x += goSpeed; } if(main2.x >= 1000 || main2.x <= -1000) mainInit(); } } } |