Laya 屏幕抖动
1 package
2 {
3
4 import laya.maths.Rectangle;
5 import laya.ui.Box;
6
7 public class ShakeCamera
8 {
9 private static var _ins:ShakeCamera;
10
11 private var _camera:Box;
12
13 private var _shakeTime:Number = 0;
14 private var _extent:Number = 0;//幅度
15
16 private var _enableShake:Boolean = true;
17
18 public function ShakeCamera()
19 {
20 }
21
22 public static function get ins():ShakeCamera
23 {
24 if(!_ins){
25 _ins = new ShakeCamera();
26 }
27 return _ins;
28 }
29
30 public function init(cam:Box,shakeTime:Number=200,extent:Number=10):void{
31 _camera = cam;
32
33 _shakeTime = shakeTime;
34 _extent = extent;
35
36 enableShake = false;
37 }
38
39 public function update():void{
40 if(enableShake && _camera){
41 if(_shakeTime > 0){
42 _shakeTime -= Laya.timer.delta;
43 if(_shakeTime <= 0){
44 _camera.pos(0,0);
45 enableShake = false;
46 }else{
47 // _camera.pos(-_extent*0.5+_extent*Math.random(),0);
48 var posY:int = Math.floor(-_extent*0.5+_extent*Math.random());
49 _camera.pos(0,posY);
50 }
51 }
52 }
53 }
54
55 public function get enableShake():Boolean
56 {
57 return _enableShake;
58 }
59
60 public function set enableShake(value:Boolean):void
61 {
62 _enableShake = value;
63
64 if(_enableShake){
65 Laya.timer.clear(this,update);
66 Laya.timer.frameLoop(1,this,update);
67 }else{
68 Laya.timer.clear(this,update);
69 }
70 }
71
72
73 }
74 }