Changeset 343


Ignore:
Timestamp:
09/10/09 18:09:25 (4 years ago)
Author:
pablo
Message:

Plugin initialization

Location:
trunk/fl5/src/com/longtailvideo/jwplayer
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/fl5/src/com/longtailvideo/jwplayer/controller/Controller.as

    r335 r343  
    8686                 */ 
    8787                public function setupPlayer():void { 
    88                         var setup:PlayerSetup = new PlayerSetup(_model, _view); 
     88                        var setup:PlayerSetup = new PlayerSetup(_player, _model, _view); 
    8989 
    9090                        setup.addEventListener(Event.COMPLETE, setupComplete); 
  • trunk/fl5/src/com/longtailvideo/jwplayer/controller/PlayerSetup.as

    r339 r343  
    11package com.longtailvideo.jwplayer.controller { 
     2        import com.jeroenwijering.events.PluginInterface; 
    23        import com.longtailvideo.jwplayer.events.PlaylistEvent; 
    34        import com.longtailvideo.jwplayer.model.Model; 
     5        import com.longtailvideo.jwplayer.player.Player; 
     6        import com.longtailvideo.jwplayer.plugins.IPlugin; 
     7        import com.longtailvideo.jwplayer.plugins.V4Plugin; 
    48        import com.longtailvideo.jwplayer.utils.Configger; 
    59        import com.longtailvideo.jwplayer.view.DefaultSkin; 
     
    711        import com.longtailvideo.jwplayer.view.View; 
    812         
     13        import flash.display.DisplayObject; 
    914        import flash.events.ErrorEvent; 
    1015        import flash.events.Event; 
     
    3843 
    3944                /** MVC references **/ 
     45                private var _player:Player; 
    4046                private var _model:Model; 
    4147                private var _view:View; 
     
    4450                private var tasker:TaskQueue; 
    4551                 
    46                 public function PlayerSetup(model:Model, view:View) { 
     52                public function PlayerSetup(player:Player, model:Model, view:View) { 
     53                        _player = player; 
    4754                        _model = model; 
    4855                        _view = view; 
     
    5764                        tasker.queueTask(loadConfig, loadConfigComplete); 
    5865                        tasker.queueTask(loadSkin); 
    59                         tasker.queueTask(loadPlugins); 
     66                        tasker.queueTask(loadPlugins, loadPluginsComplete); 
    6067                        tasker.queueTask(loadPlaylist); 
    6168                        tasker.queueTask(loadMediaSources); 
     
    127134                        } 
    128135                } 
     136                 
     137                private function loadPluginsComplete(event:Event):void { 
     138                        var loader:PluginLoader = event.target as PluginLoader; 
     139 
     140                        for (var pluginName:String in loader.plugins) { 
     141                                var plugin:DisplayObject = loader.plugins[pluginName] as DisplayObject; 
     142                                if (plugin is IPlugin) { 
     143                                        _view.addPlugin(pluginName, plugin as IPlugin); 
     144                                } else if (plugin is PluginInterface) { 
     145                                        _view.addPlugin(pluginName, new V4Plugin(plugin as PluginInterface)); 
     146                                } 
     147                        } 
     148                         
     149                } 
    129150 
    130151                private function loadPlaylist():void { 
     
    143164                 
    144165                private function initPlugins():void { 
    145                         tasker.success(); 
     166                        try { 
     167                                for each (var pluginName:String in _view.loadedPlugins().split(",")) { 
     168                                        var plugin:IPlugin = _view.getPlugin(pluginName); 
     169                                        plugin.initializePlugin(_player, _model.config.pluginConfig(pluginName)); 
     170                                } 
     171                                tasker.success(); 
     172                        } catch (e:Error) { 
     173                                tasker.failure(new ErrorEvent(ErrorEvent.ERROR, false, false, e.message)); 
     174                        } 
    146175                } 
    147176 
  • trunk/fl5/src/com/longtailvideo/jwplayer/controller/PluginLoader.as

    r339 r343  
    11package com.longtailvideo.jwplayer.controller { 
    22        import com.longtailvideo.jwplayer.utils.AssetLoader; 
     3        import com.longtailvideo.jwplayer.utils.RootReference; 
    34        import com.longtailvideo.jwplayer.utils.Strings; 
    45         
     
    5051                 
    5152                private function loadLocalPlugin(plugin:String):void { 
    52                         if (plugin.indexOf("/") >= 0) { 
     53                        if (plugin.indexOf("/") >= 0 || RootReference.root.loaderInfo.url.indexOf("http") != 0) { 
    5354                                var loader:AssetLoader = new AssetLoader(); 
    5455                                loader.addEventListener(Event.COMPLETE, loadSuccess); 
  • trunk/fl5/src/com/longtailvideo/jwplayer/model/PlayerConfig.as

    r339 r343  
    293293                /** Which plugins to load **/            
    294294                public function get plugins():String { return _plugins; } 
     295                public function set plugins(x:String):void { _plugins = x; } 
     296                 
     297                /** 
     298                 * Returns a PluginConfig containing plugin configuration information 
     299                 *  
     300                 * @param pluginName Name of the plugin whose config to return. 
     301                 */ 
     302                public function pluginConfig(pluginName:String):PluginConfig { 
     303                        if (_pluginConfig.hasOwnProperty(pluginName)) { 
     304                                return _pluginConfig[pluginName] as PluginConfig; 
     305                        } 
     306                         
     307                        return new PluginConfig(pluginName); 
     308                } 
    295309 
    296310        } 
  • trunk/fl5/src/com/longtailvideo/jwplayer/plugins/V4Plugin.as

    r339 r343  
    22        import com.jeroenwijering.events.AbstractView; 
    33        import com.jeroenwijering.events.PluginInterface; 
    4  
     4        import com.longtailvideo.jwplayer.player.Player; 
     5         
    56        import flash.display.Sprite; 
    67 
    78        public class V4Plugin extends Sprite implements IPlugin { 
    8                 var vw:AbstractView; 
    9                 var plug:PluginInterface; 
     9                private var vw:AbstractView; 
     10                private var plug:PluginInterface; 
    1011 
    1112                public function V4Plugin(plugin:PluginInterface) { 
     
    1718                        plug.initializePlugin(vw); 
    1819                } 
     20                 
     21                public function resize(width:Number, height:Number):void { 
     22                         
     23                } 
    1924 
    2025        } 
  • trunk/fl5/src/com/longtailvideo/jwplayer/view/View.as

    r339 r343  
    6969                } 
    7070 
     71                public function loadedPlugins():String { 
     72                        var list:Array = []; 
     73                        for each (var plugin:DisplayObject in _plugins) { 
     74                                if (plugin is IPlugin) { 
     75                                        list.push(plugin.name); 
     76                                } 
     77                        } 
     78                        return list.join(","); 
     79                } 
     80 
    7181                public function getPlugin(name:String):IPlugin { 
    7282                        return _plugins.getChildByName(name) as IPlugin; 
Note: See TracChangeset for help on using the changeset viewer.