source: trunk/fl5/src/com/longtailvideo/jwplayer/player/Player.as @ 393

Revision 393, 5.1 KB checked in by zach, 4 years ago (diff)

Updating UI components

Line 
1package com.longtailvideo.jwplayer.player {
2        import com.longtailvideo.jwplayer.controller.Controller;
3        import com.longtailvideo.jwplayer.events.PlayerEvent;
4        import com.longtailvideo.jwplayer.model.Model;
5        import com.longtailvideo.jwplayer.model.PlayerConfig;
6        import com.longtailvideo.jwplayer.model.Playlist;
7        import com.longtailvideo.jwplayer.plugins.IPlugin;
8        import com.longtailvideo.jwplayer.utils.RootReference;
9        import com.longtailvideo.jwplayer.view.ISkin;
10        import com.longtailvideo.jwplayer.view.PlayerComponents;
11        import com.longtailvideo.jwplayer.view.View;
12       
13        import flash.display.Sprite;
14        import flash.events.Event;
15       
16       
17        /**
18         * Sent when the player has been initialized and skins and plugins have been successfully loaded.
19         *
20         * @eventType com.longtailvideo.jwplayer.events.PlayerEvent.JWPLAYER_READY
21         */
22        [Event(name="jwplayerReady", type = "com.longtailvideo.jwplayer.events.PlayerEvent")]
23
24
25        /**
26         * Main class for JW Flash Media Player
27         *
28         * @author Pablo Schklowsky
29         */
30        public class Player extends Sprite {
31                private static var playerVersion:String = "5.0.1";
32               
33                private var model:Model;
34                private var view:View;
35                private var controller:Controller;
36
37                /** Player constructor **/
38                public function Player() {
39                        new RootReference(this);
40                       
41                        try {
42                                this.addEventListener(Event.ADDED_TO_STAGE, setupPlayer);
43                        } catch (err:Error) {
44                                setupPlayer();
45                        }
46                }
47               
48                private function setupPlayer(event:Event = null):void {
49                        try {
50                                this.removeEventListener(Event.ADDED_TO_STAGE, setupPlayer);
51                        } catch (err:Error) {
52                        }
53                        model = new Model();
54                        view = new View(this);
55                        controller = new Controller(this, model, view);
56
57                        model.addGlobalListener(forward);
58                        view.addGlobalListener(forward);
59                        controller.addGlobalListener(forward);
60
61                        // Initialize V4 "simulator" singleton
62                        new PlayerV4Emulation(this);
63
64                        controller.setupPlayer();
65                }
66
67                /**
68                 * Forwards all MVC events to interested listeners.
69                 * @param evt
70                 */
71                protected function forward(evt:PlayerEvent):void {
72                        dispatchEvent(evt);
73                }
74
75                /**
76                 * The player's current configuration
77                 */
78                public function get config():PlayerConfig {
79                        return model.config;
80                }
81
82                /**
83                 * Player version getter
84                 */
85                public static function get version():String {
86                        return playerVersion;
87                }
88
89                /**
90                 * Reference to player's skin.  If no skin has been loaded, returns null.
91                 */
92                public function get skin():ISkin {
93                        return view.skin;
94                }
95
96                /**
97                 * The current player state
98                 */
99                public function get state():String {
100                        return model.state;
101                }
102
103                /**
104                 * The player's playlist
105                 */
106                public function get playlist():Playlist {
107                        return model.playlist;
108                }
109
110                /**
111                 * Set to true when the player is blocking playback.
112                 */
113                public function get isBlocking():Boolean {
114                        return controller.blocking;
115                }
116
117                /**
118                 * Request that the player block playback.  When the Player is blocking, the currently playing stream is
119                 * paused, and no new playback-related commands will be honored until <code>unblockPlayback</code> is
120                 * called.
121                 *
122                 * @param target Reference to plugin requesting playback blocking
123                 * @return <code>true</code>, if the blocking request is successful.  If another plugin is blocking,returns
124                 * <code>false</code>.
125                 */
126                public function blockPlayback(target:IPlugin):Boolean {
127                        return controller.blockPlayback(target);
128                }
129
130                /**
131                 * Unblocks the player.  If the player was buffering or playing when it was blocked, playback will resume.
132                 *
133                 * @param target Reference to the requesting plugin.
134                 * @return <code>true</code>, if <code>target</code> had previously requested player blocking.
135                 *
136                 */
137                public function unblockPlayback(target:IPlugin):Boolean {
138                        return controller.unblockPlayback(target);
139                }
140               
141                public function volume(volume:Number):Boolean {
142                        return controller.setVolume(volume);
143                }
144               
145                public function mute(state:Boolean):Boolean {
146                        return controller.mute(state);
147                }
148               
149                public function play():Boolean {
150                        return controller.play();
151                }
152
153                public function pause():Boolean {
154                        return controller.pause();     
155                }
156               
157                public function stop():Boolean {
158                        return controller.stop();
159                }
160               
161                public function seek(position:Number):Boolean {
162                        return controller.seek(position);
163                }
164               
165                public function load(item:*):Boolean {
166                        return controller.load(item);
167                }
168               
169                public function playlistItem(index:Number):Boolean {
170                        return controller.load(index);
171                }
172               
173                public function playlistNext():Boolean {
174                        return controller.load(model.playlist.currentIndex+1);
175                }
176
177                public function playlistPrev():Boolean {
178                        return controller.load(model.playlist.currentIndex-1);
179                }
180               
181                /** Force a redraw of the player **/
182                public function redraw():Boolean {
183                        return controller.redraw();
184                }
185       
186                public function fullscreen(on:Boolean):Boolean {
187                        return controller.fullscreen(on);
188                }
189               
190                public function link(index:Number=NaN):Boolean {
191                        return controller.link(index);
192                }
193               
194                public function get uiComponents():PlayerComponents {
195                        return view.components;
196                }
197
198        }
199}
Note: See TracBrowser for help on using the repository browser.