Changeset 1246
- Timestamp:
- 08/27/10 20:34:54 (3 years ago)
- Location:
- trunk/fl5
- Files:
-
- 12 edited
-
player.swf (modified) (previous)
-
src/com/longtailvideo/jwplayer/controller/PluginLoader.as (modified) (1 diff)
-
src/com/longtailvideo/jwplayer/media/SoundMediaProvider.as (modified) (2 diffs)
-
src/com/longtailvideo/jwplayer/model/PlayerConfig.as (modified) (1 diff)
-
src/com/longtailvideo/jwplayer/player/IPlayer.as (modified) (3 diffs)
-
src/com/longtailvideo/jwplayer/player/JavascriptAPI.as (modified) (6 diffs)
-
src/com/longtailvideo/jwplayer/player/JavascriptCompatibilityAPI.as (modified) (3 diffs)
-
src/com/longtailvideo/jwplayer/player/PlayerV4Emulation.as (modified) (1 diff)
-
src/com/longtailvideo/jwplayer/player/PlayerVersion.as (modified) (1 diff)
-
src/com/longtailvideo/jwplayer/utils/Strings.as (modified) (1 diff)
-
src/com/longtailvideo/jwplayer/view/components/ControlbarComponent.as (modified) (2 diffs)
-
src/com/longtailvideo/jwplayer/view/components/ControlbarComponentV4.as (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/fl5/src/com/longtailvideo/jwplayer/controller/PluginLoader.as
r719 r1246 43 43 44 44 public function loadPlugins(pluginList:String):void { 45 var plugins:Array = pluginList.replace(/\s*/g,"").split(","); 46 for each(var plugin:String in plugins) { 47 loadLocalPlugin(plugin); //Testing 45 if (pluginList) { 46 var plugins:Array = pluginList.replace(/\s*/g,"").split(","); 47 for each(var plugin:String in plugins) { 48 loadLocalPlugin(plugin); //Testing 49 } 50 } else { 51 dispatchEvent(new Event(Event.COMPLETE)); 48 52 } 49 53 } -
trunk/fl5/src/com/longtailvideo/jwplayer/media/SoundMediaProvider.as
r1223 r1246 29 29 /** Whether the buffer has filled **/ 30 30 private var _bufferFull:Boolean; 31 /** Whether the enitre videohas been buffered **/31 /** Whether the enitre sound file has been buffered **/ 32 32 private var _bufferingComplete:Boolean; 33 33 /** User-defined item duration **/ … … 79 79 _position = 0; 80 80 _bufferFull = false; 81 _bufferingComplete = false;82 81 _userDuration = itm.duration > 0 ? itm.duration : -1; 83 if (!_item || _item.file != itm.file) { 82 if (!_item || _item.file != itm.file || !_bufferingComplete) { 83 _bufferingComplete = false; 84 84 _item = itm; 85 85 _sound = new Sound(); -
trunk/fl5/src/com/longtailvideo/jwplayer/model/PlayerConfig.as
r1207 r1246 68 68 public function setConfig(config:Object):void { 69 69 for (var item:String in config) { 70 item = item;71 70 if (item.indexOf(".") > 0) { 72 71 setPluginProperty(item, config[item]); -
trunk/fl5/src/com/longtailvideo/jwplayer/player/IPlayer.as
r1238 r1246 1 1 package com.longtailvideo.jwplayer.player { 2 import com.longtailvideo.jwplayer.events.IGlobalEventDispatcher; 2 3 import com.longtailvideo.jwplayer.model.IPlaylist; 3 4 import com.longtailvideo.jwplayer.model.PlayerConfig; … … 6 7 import com.longtailvideo.jwplayer.view.interfaces.IPlayerComponent; 7 8 import com.longtailvideo.jwplayer.view.interfaces.ISkin; 8 9 9 10 import flash.events.IEventDispatcher; 10 11 … … 15 16 * @author Zachary Ozer 16 17 */ 17 public interface IPlayer extends IEventDispatcher {18 public interface IPlayer extends IEventDispatcher, IGlobalEventDispatcher { 18 19 /** 19 20 * The player's current configuration -
trunk/fl5/src/com/longtailvideo/jwplayer/player/JavascriptAPI.as
r1228 r1246 1 1 package com.longtailvideo.jwplayer.player { 2 import com.longtailvideo.jwplayer.events.GlobalEventDispatcher;3 import com.longtailvideo.jwplayer.events.IGlobalEventDispatcher;4 2 import com.longtailvideo.jwplayer.events.MediaEvent; 5 3 import com.longtailvideo.jwplayer.events.PlayerEvent; … … 17 15 import flash.external.ExternalInterface; 18 16 import flash.utils.Timer; 17 import flash.utils.setTimeout; 19 18 20 19 public class JavascriptAPI { … … 35 34 setupPlayerListeners(); 36 35 setupJSListeners(); 36 _player.addGlobalListener(queueEvents); 37 37 38 } 38 39 39 40 /** Delay the response to PlayerReady to allow the external interface to initialize in some browsers **/ 40 41 protected function playerReady(evt:PlayerEvent):void { 41 (_player as IGlobalEventDispatcher).addGlobalListener(queueEvents);42 43 42 var timer:Timer = new Timer(50, 1); 44 43 45 44 timer.addEventListener(TimerEvent.TIMER_COMPLETE, function(timerEvent:TimerEvent):void { 45 _player.removeGlobalListener(queueEvents); 46 46 var callbacks:String = _player.config.playerready ? _player.config.playerready + "," + "playerReady" : "playerReady"; 47 47 if (ExternalInterface.available) { … … 56 56 } 57 57 58 for each (var queuedEvent:PlayerEvent in _queuedEvents) { 59 listenerCallback(queuedEvent); 60 } 61 _queuedEvents = null; 62 58 clearQueuedEvents(); 63 59 } 64 60 65 (_player as IGlobalEventDispatcher).removeGlobalListener(queueEvents);66 61 67 62 }); … … 71 66 protected function queueEvents(evt:PlayerEvent):void { 72 67 _queuedEvents.push(evt); 68 } 69 70 protected function clearQueuedEvents():void { 71 for each (var queuedEvent:PlayerEvent in _queuedEvents) { 72 listenerCallback(queuedEvent); 73 } 74 _queuedEvents = null; 73 75 } 74 76 … … 175 177 var callbacks:Array = _listeners[evt.type] as Array; 176 178 177 if (callbacks) { 178 for each (var call:String in callbacks) { 179 ExternalInterface.call(call, args); 180 } 181 } 179 //Insert 1ms delay to allow all Flash listeners to complete before notifying JavaScript 180 setTimeout(function():void { 181 if (callbacks) { 182 for each (var call:String in callbacks) { 183 ExternalInterface.call(call, args); 184 } 185 } 186 }, 1); 182 187 183 188 } -
trunk/fl5/src/com/longtailvideo/jwplayer/player/JavascriptCompatibilityAPI.as
r1214 r1246 9 9 10 10 import flash.external.ExternalInterface; 11 import flash.utils.setTimeout; 11 12 12 13 … … 46 47 } 47 48 49 } 50 51 override protected function clearQueuedEvents():void { 52 super.clearQueuedEvents(); 53 var eventInfo:PlayerEvent = new PlayerEvent(""); 54 forwardControllerEvents(new ControllerEvent(ControllerEvent.PLAYLIST, {playlist:JavascriptSerialization.playlistToArray(_player.playlist), id:eventInfo.id, client:eventInfo.client, version:eventInfo.version})); 55 forwardControllerEvents(new ControllerEvent(ControllerEvent.ITEM, {index:_player.playlist.currentIndex, id:eventInfo.id, client:eventInfo.client, version:eventInfo.version})); 48 56 } 49 57 … … 133 141 134 142 private function forwardControllerEvents(evt:ControllerEvent):void { 135 if (controllerCallbacks.hasOwnProperty(evt.type)) { 136 for each (var callback:String in controllerCallbacks[evt.type]) { 137 if (ExternalInterface.available) { 138 ExternalInterface.call(callback, JavascriptSerialization.stripDots(evt.data)); 143 //Insert 1ms delay to allow all Flash listeners to complete before notifying JavaScript 144 setTimeout(function():void { 145 if (controllerCallbacks.hasOwnProperty(evt.type)) { 146 for each (var callback:String in controllerCallbacks[evt.type]) { 147 if (ExternalInterface.available) { 148 ExternalInterface.call(callback, JavascriptSerialization.stripDots(evt.data)); 149 } 139 150 } 140 151 } 141 } 152 }, 1); 142 153 } 143 154 144 155 private function forwardModelEvents(evt:ModelEvent):void { 145 if (modelCallbacks.hasOwnProperty(evt.type)) { 146 for each (var callback:String in modelCallbacks[evt.type]) { 147 if (ExternalInterface.available) { 148 ExternalInterface.call(callback, JavascriptSerialization.stripDots(evt.data)); 156 //Insert 1ms delay to allow all Flash listeners to complete before notifying JavaScript 157 setTimeout(function():void { 158 if (modelCallbacks.hasOwnProperty(evt.type)) { 159 for each (var callback:String in modelCallbacks[evt.type]) { 160 if (ExternalInterface.available) { 161 ExternalInterface.call(callback, JavascriptSerialization.stripDots(evt.data)); 162 } 149 163 } 150 164 } 151 } 165 }, 1); 152 166 } 153 167 154 168 private function forwardViewEvents(evt:ViewEvent):void { 155 if (viewCallbacks.hasOwnProperty(evt.type)) { 156 for each (var callback:String in viewCallbacks[evt.type]) { 157 if (ExternalInterface.available) { 158 ExternalInterface.call(callback, JavascriptSerialization.stripDots(evt.data)); 169 //Insert 1ms delay to allow all Flash listeners to complete before notifying JavaScript 170 setTimeout(function():void { 171 if (viewCallbacks.hasOwnProperty(evt.type)) { 172 for each (var callback:String in viewCallbacks[evt.type]) { 173 if (ExternalInterface.available) { 174 ExternalInterface.call(callback, JavascriptSerialization.stripDots(evt.data)); 175 } 159 176 } 160 177 } 161 } 178 }, 1); 162 179 } 163 180 -
trunk/fl5/src/com/longtailvideo/jwplayer/player/PlayerV4Emulation.as
r1214 r1246 77 77 78 78 private function setupListeners():void { 79 80 var m:Model;81 var v:IControlbarComponent;82 var c:Controller83 84 79 _player.addEventListener(PlayerEvent.JWPLAYER_ERROR, errorHandler); 85 80 -
trunk/fl5/src/com/longtailvideo/jwplayer/player/PlayerVersion.as
r1243 r1246 3 3 4 4 public class PlayerVersion { 5 protected static var _version:String = "5.3.124 3";5 protected static var _version:String = "5.3.1246"; 6 6 7 7 public static function get version():String { -
trunk/fl5/src/com/longtailvideo/jwplayer/utils/Strings.as
r1054 r1246 76 76 } else if (val == 'false') { 77 77 return false; 78 } else if (isNaN(Number(val)) || val.length > 5 ) {78 } else if (isNaN(Number(val)) || val.length > 5 || val.length == 0) { 79 79 return val; 80 80 } else { -
trunk/fl5/src/com/longtailvideo/jwplayer/view/components/ControlbarComponent.as
r1238 r1246 192 192 /** Show above controlbar on mousemove and restart the countdown. **/ 193 193 private function moveHandler(evt:MouseEvent=null):void { 194 if (alpha == 0) {195 stopFader();194 stopFader(); 195 if (_player.state == PlayerState.BUFFERING || _player.state == PlayerState.PLAYING || hideOnIdle) { 196 196 startFader(); 197 197 } … … 207 207 private function mouseLeftStage(evt:Event=null):void { 208 208 if (fadeOnTimeout) { 209 if (_player.state == PlayerState.BUFFERING || _player.state == PlayerState.PLAYING || hideOnIdle) 210 animations.fade(0); 209 if (_player.state == PlayerState.BUFFERING || _player.state == PlayerState.PLAYING || hideOnIdle) { 210 animations.fade(0); 211 } 211 212 } 212 213 } -
trunk/fl5/src/com/longtailvideo/jwplayer/view/components/ControlbarComponentV4.as
r1238 r1246 403 403 /** Show above controlbar on mousemove and restart the countdown. **/ 404 404 private function moveHandler(evt:MouseEvent=null):void { 405 if (alpha == 0) {406 stopFader();405 stopFader(); 406 if (_player.state == PlayerState.BUFFERING || _player.state == PlayerState.PLAYING || hideOnIdle) { 407 407 startFader(); 408 408 } … … 418 418 private function mouseLeftStage(evt:Event=null):void { 419 419 if (fadeOnTimeout) { 420 if (_player.state == PlayerState.BUFFERING || _player.state == PlayerState.PLAYING || hideOnIdle) 420 if (_player.state == PlayerState.BUFFERING || _player.state == PlayerState.PLAYING || hideOnIdle) { 421 421 animations.fade(0); 422 } 422 423 } 423 424 } … … 432 433 startFader(); 433 434 break; 435 case PlayerState.IDLE: 436 timeHandler(); 434 437 case PlayerState.PAUSED: 435 case PlayerState.IDLE:436 438 getSkinComponent('playButton').visible = true; 437 439 getSkinComponent('pauseButton').visible = false;
Note: See TracChangeset
for help on using the changeset viewer.
