-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEditorEngine.as
More file actions
150 lines (126 loc) · 4.31 KB
/
EditorEngine.as
File metadata and controls
150 lines (126 loc) · 4.31 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package
{
import fl.video.*;
import flash.external.ExternalInterface;
import flash.display.StageScaleMode;
/*
* A version of the engine meant to interface with an external editor
*/
public class EditorEngine extends Engine
{
protected const EDITOR_MIN_WIDTH:Number = 480;
protected const EDITOR_MIN_HEIGHT:Number = 360;
public function EditorEngine()
{
super(); //Call super before everything else
//Make methods callable through an external program
ExternalInterface.addCallback("isPlaying", external_isPlaying);
ExternalInterface.addCallback("getPlayheadTime", external_getPlayheadTime);
ExternalInterface.addCallback("setPlayheadTime", external_setPlayheadTime);
ExternalInterface.addCallback("play", external_play);
ExternalInterface.addCallback("pause", external_pause);
ExternalInterface.addCallback("togglePlay", external_togglePlay);
ExternalInterface.addCallback("videoLength", external_videoLength);
}
function external_play ():void
{
player.play();
}
function external_pause():void
{
player.stop();
}
function external_togglePlay():void
{
if(player.playing)
player.stop();
else
player.play();
}
function external_isPlaying():Boolean
{
return player.playing;
}
function external_videoLength():Number
{
return player.totalTime;
}
function external_getPlayheadTime():Number
{
return player.playheadTime;
}
function external_setPlayheadTime(time:Number):void
{
player.seek(time);
}
/*
* Sets up video controls: volume, source, frame rate. Initializes the effects for emotions, and the cue points.
*
* @see Effects [class]
* @see addCuePooints [method]
* @see readyHandler [method]
* @see cuePointHandler [method]
*/
override function loadVideo():void
{
player.addEventListener ("ready", readyHandler);
player.addEventListener ("cuePoint", cuePointHandler);
// Playback
player.autoPlay = false;
player.autoRewind = settings.getAutoRewind ();
///*// Skin
player.skin = "SkinOverPlayMute.swf";
player.skinAutoHide = settings.getSkinAutoHide();
player.skinBackgroundAlpha = settings.getSkinBackgroundAlpha();
player.skinBackgroundColor = settings.getSkinBackgroundColour();
player.skinFadeTime = settings.getSkinFadeTime();
//*/
//player.volume = settings.getVolume (); // volume range 0-1
player.volume = 0;
player.playheadUpdateInterval = Math.floor (1000 / 48); // FPS = 48
player.source = settings.getContentVideo ();
if (settings.getShowCaptions ()) {
addCuePoints ();
// effects = new Effects (settings.getHappyParams (), settings.getSadParams (), settings.getFearParams (), settings.getAngerParams ());
happy = new Happy(settings.getHappyParams ());
sad = new Sad(settings.getSadParams ());
fear = new Fear(settings.getFearParams ());
anger = new Anger(settings.getAngerParams ());
}
}
/*
* Displays the FLVPlayer and plays the video.
*
* @param eventObject Object
*/
override function readyHandler (eventObject:Object):void {
/*Set player and stage not to scale. It is necessary to do this
before the decision statement below otherwise the player will not
be the native height of the movie*/
player.scaleMode = VideoScaleMode.MAINTAIN_ASPECT_RATIO;
stage.scaleMode = StageScaleMode.EXACT_FIT;
trace("Before Resize");
trace("Player Width " + player.width);
trace("Player Height " + player.height);
//Set player dimensions to stage dimentions
//While maintaining aspect ratios
player.width = 1280;
player.height = 720;
//Anchor the player to the Center of the stage
player.align = VideoAlign.CENTER;
//Anchor the stage to the Center corner
stage.align = VideoAlign.CENTER;
trace("After Resize");
trace("Player Width " + player.width);
trace("Player Height " + player.height);
// Seek & Play
if (settings.getSeek () > 0)
player.seek (settings.getSeek ());
//if (settings.getAutoPlay ())
// player.play ()
player.visible = true;
//Inform the container that the swf is done loading.
ExternalInterface.call("Done Loading");
}
}//Class
}//Package