-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAnger.as
More file actions
74 lines (64 loc) · 2.51 KB
/
Anger.as
File metadata and controls
74 lines (64 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package {
import flash.display.DisplayObject;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import com.greensock.*;
import com.greensock.easing.*;
public class Anger extends Effects{
private var angerFPS:Array;
private var angerDur:Array;
private var angerScaleBegin:Array;
private var angerScaleFinish:Array;
private var angerVibrateX:Array;
private var angerVibrateY:Array;
private var frames:Number;
/*
* Sets all values from given object.
*
* @param intensity Number
*/
public function Anger(angerParams:Object) {
super();
this.angerFPS = angerParams.fps;
this.angerDur = angerParams.dur;
this.angerScaleBegin = angerParams.scaleBegin;
this.angerScaleFinish = angerParams.scaleFinish;
this.angerVibrateX = angerParams.vibrateX;
this.angerVibrateY = angerParams.vibrateY;
}
/*
* Sets parameters and frame values.
*
* @param intensity Number
*/
public function setFrames(intensity:Number):void {
super.setParams(angerFPS,angerDur,angerScaleBegin,angerScaleFinish,intensity);
frames = super.getFPS() * super.getDuration() * 0.25;
}
/*
* Creates all tweens needed for anger emotion.
*
* @param caption_txt DisplayObject
* @param intensity number
* @see scaleTween [method]
*/
public function startTween(caption_txt:DisplayObject, intensity:Number):void {
var unitX:Number = super.getIntensity(angerVibrateX, intensity);
var unitY:Number = super.getIntensity(angerVibrateY, intensity);
var vibrateBeginX:Number = caption_txt.x - unitX;
var vibrateBeginY:Number = caption_txt.y - unitY;
var xFin:Number = caption_txt.x + super.resize (caption_txt.height, (1 - super.getScaleFinish()) * 50);
var yFin:Number = caption_txt.y + super.resize (caption_txt.height, (1 - super.getScaleFinish()) * 50);
var vibrate:TweenLite = TweenLite.to(caption_txt,frames * 0.5,{x:xFin,y:yFin,scaleX:super.getScaleFinish(),scaleY:super.getScaleFinish(),onComplete:restartTween,useFrames:true,overwrite:0});
function restartTween():void {
xFin = vibrateBeginX - Math.random () * unitX * 3;
yFin = vibrateBeginY - Math.random () * unitY * 3;
vibrate = TweenLite.from(caption_txt,1,{x:xFin,y:yFin,useFrames:true,onComplete:restartTween,onReverseComplete:reverseTween,overwrite:0});
}
function reverseTween():void {
vibrate.restart();
}
}
} // EFFECTS
} // PACKAGE