Changeset 3

Show
Ignore:
Timestamp:
06/06/08 00:38:39 (6 months ago)
Author:
jeroen
Message:

added js initer BUT destroyed controlbar display

Location:
trunk/as3
Files:
17 modified

Legend:

Unmodified
Added
Removed
  • trunk/as3/com/jeroenwijering/models/HTTPModel.as

    r1 r3  
    112112                url += '&width='+model.config['width']; 
    113113                url += '&client='+encodeURI(model.config['client']); 
     114                trace(url); 
    114115                stream.play(url); 
    115116                clearInterval(loadinterval); 
  • trunk/as3/com/jeroenwijering/player/Controller.as

    r1 r3  
    240240                        fullscreen:false 
    241241                }; 
    242                 if(config['controlbar'] == 'below') { 
     242                if(config['controlbar'] == 'bottom') { 
    243243                        dat.height -= config['controlbarsize']; 
    244244                } 
    245245                if(config['playlist'] == 'right') { 
    246246                        dat.width -= config['playlistsize']; 
    247                 } else if(config['playlist'] == 'below') { 
     247                } else if(config['playlist'] == 'bottom') { 
    248248                        dat.height -= config['playlistsize']; 
    249249                } 
  • trunk/as3/com/jeroenwijering/player/Model.as

    r1 r3  
    4848                loader = new Loader(); 
    4949                loader.contentLoaderInfo.addEventListener(Event.INIT,thumbHandler); 
    50                 Draw.clear(skin.display.media); 
    51                 Draw.clear(skin.display.thumb); 
    5250        }; 
    5351 
     
    5553        /** Item change: switch the curently active model if there's a new URL **/ 
    5654        private function itemHandler(evt:ControllerEvent) { 
    57                 skin.display.media.visible = false; 
     55                // skin.display.media.visible = false; 
    5856                if(current) { current.stop(); } 
    5957                sendEvent(ModelEvent.STATE,{newstate:ModelStates.IDLE}); 
     
    7270                                break; 
    7371                        case 'video': 
    74                                 if(config['streamscript']) {  
     72                                if(config['streamscript']) { 
    7573                                        current = new HTTPModel(this); 
    76                                 } else {  
     74                                } else { 
    7775                                        current = new VideoModel(this); 
    7876                                } 
     
    8381                } 
    8482                if(playlist[evt.data.index]['image']) { 
    85                         skin.display.thumb.visible = true; 
     83                        // skin.display.thumb.visible = true; 
    8684                        loader.load(new URLRequest(playlist[evt.data.index]['image'])); 
    8785                } else { 
    88                         skin.display.thumb.visible = false; 
     86                        // skin.display.thumb.visible = false; 
    8987                } 
    9088        }; 
     
    9391        /** Place a loaded thumb on stage. **/ 
    9492        private function thumbHandler(evt:Event) { 
     93                /* 
    9594                var obj = skin.display.thumb; 
    9695                Draw.clear(obj); 
     
    9897                Bitmap(loader.content).smoothing = config['quality']; 
    9998                Stretcher.stretch(obj,config['width'],config['height'],config['stretching']); 
     99                */ 
    100100        }; 
    101101 
     
    103103        /** Place a loaded mediafile on stage **/ 
    104104        public function mediaHandler(chd:DisplayObject) { 
     105                /* 
    105106                var obj = skin.display.media; 
    106107                Draw.clear(obj); 
     
    109110                skin.display.thumb.visible = false; 
    110111                skin.display.media.visible = true; 
     112                */ 
    111113        }; 
    112114 
     
    146148        /** Resize the media and thumb. **/ 
    147149        private function resizeHandler(evt:ControllerEvent) { 
     150                /* 
    148151                Stretcher.stretch(skin.display.thumb,evt.data.width,evt.data.height,config['stretching']); 
    149152                Stretcher.stretch(skin.display.media,evt.data.width,evt.data.height,config['stretching']); 
     153                */ 
    150154        }; 
    151155 
  • trunk/as3/com/jeroenwijering/player/Player.as

    r2 r3  
    1010import flash.display.MovieClip; 
    1111import flash.events.Event; 
    12 import flash.system.Capabilities; 
    1312 
    1413 
     
    1817        /** A list with all default configuration values. **/ 
    1918        private var defaults:Object = { 
    20                 height:300, 
    21                 width:400, 
    22  
    2319                author:undefined, 
    2420                captions:undefined, 
    2521                description:undefined, 
    2622                duration:0, 
    27                 file:undefined, 
     23                file:'http://www.jeroenwijering.com/upload/mrss.xml', 
    2824                image:undefined, 
    2925                link:undefined, 
     
    3228                type:undefined, 
    3329 
    34                 controlbar:'below', 
    35                 controlbarsize:20, 
    36                 icons:true, 
     30                controlbar:'bottom', 
    3731                logo:undefined, 
    3832                playlist:'none', 
    3933                playlistsize:180, 
    40                 skin:'agriya.swf', 
    41                 texts:false, 
     34                skin:undefined, 
    4235 
    4336                autostart:false, 
     
    5649                abouttext:"About JW Player 4.0...", 
    5750                aboutlink:"http://www.jeroenwijering.com/?page=about", 
     51                linktarget:'_self', 
     52                streamscript:'lighttpd', 
     53                tracecall:undefined, 
     54 
    5855                client:undefined, 
    59                 linktarget:'_self', 
    60                 streamscript:undefined, 
    61                 tracecall:undefined, 
    62                 version:'4.0 r1' 
     56                controlbarheight:20, 
     57                height:300, 
     58                version:'4.0 r3', 
     59                width:400 
    6360        }; 
    6461        /** Object that loads all configuration variables. **/ 
     
    7471 
    7572 
    76         /** Constructor; loads config. **/ 
    77         public function Player(ply:MovieClip=undefined) { 
    78                 if(!ply) { ply = this['player']; } 
    79                 defaults['client'] = Capabilities.version; 
    80                 configger = new Configger(ply); 
     73        /** Constructor; Loads config. **/ 
     74        public function Player() { 
     75                configger = new Configger(this); 
    8176                configger.addEventListener(Event.COMPLETE,configHandler); 
    82                 skinner = new Skinner(ply); 
    83                 skinner.addEventListener(Event.COMPLETE,skinHandler); 
    8477                configger.load(defaults); 
    8578        }; 
     
    8881        /** Config loading completed; now load skin. **/ 
    8982        private function configHandler(evt:Event) { 
     83                skinner = new Skinner(this); 
     84                skinner.addEventListener(Event.COMPLETE,skinHandler); 
    9085                skinner.load(configger.config['skin']); 
    9186        }; 
  • trunk/as3/com/jeroenwijering/player/View.as

    r2 r3  
    4848                views.push(new RightclickView(this)); 
    4949                if(_skin['controlbar']) { 
    50                         views.push(new ControlbarView(this)); 
     50                        //views.push(new ControlbarView(this)); 
    5151                } 
    5252                if(_skin['playlist']) { 
    53                         views.push(new PlaylistView(this)); 
     53                        //views.push(new PlaylistView(this)); 
    5454                } 
    5555                if(ExternalInterface.available || Capabilities.playerType == 'External') { 
  • trunk/as3/com/jeroenwijering/utils/Configger.as

    r1 r3  
    77 
    88 
     9import com.jeroenwijering.utils.Strings; 
    910import flash.events.Event; 
    1011import flash.events.EventDispatcher; 
     
    1314import flash.net.URLRequest; 
    1415import flash.net.URLLoader; 
    15 import com.jeroenwijering.utils.Strings; 
     16import flash.system.Capabilities; 
    1617 
    1718 
     
    4243        public function load(def:Object) { 
    4344                config = def; 
     45                config['client'] = 'FLASH '+Capabilities.version; 
    4446                var xml = reference.root.loaderInfo.parameters['config']; 
    4547                if(xml) { 
     
    7577        /** Load configuration data from flashcookie. **/ 
    7678        private function loadCookies() { 
    77                 Configger.cookie = SharedObject.getLocal('com.jeroenwijering.utils','/'); 
     79                Configger.cookie = SharedObject.getLocal('com.jeroenwijering','/'); 
    7880                compareWrite(Configger.cookie.data); 
    7981                loadFlashvars(); 
     
    9092        /** Compare and save new items in config, preserving datatype. **/ 
    9193        private function compareWrite(obj:Object) { 
    92                 for(var cfv in config) { 
     94                for(var cfv in obj) { 
    9395                        var lfv = cfv.toLowerCase(); 
    94                         if(obj[lfv] != undefined) { 
     96                        if(config[lfv] != undefined) { 
    9597                                config[lfv] = Strings.serialize(obj[lfv],config[cfv]); 
     98                        } else {  
     99                                config[lfv] = obj[lfv]; 
    96100                        } 
    97101                } 
  • trunk/as3/com/jeroenwijering/utils/Skinner.as

    r2 r3  
    1616 
    1717 
    18         /** Reference to the stage graphics **/ 
     18        /** Reference to the stage graphics. **/ 
    1919        public var skin:MovieClip; 
    2020        /** SWF skin loader reference **/ 
    2121        private var loader:Loader; 
     22        /** Reference to the player itself. **/ 
     23        private var player:MovieClip; 
    2224        /** Skinnable elements **/ 
    2325        private var ELEMENTS:Array = new Array("controlbar","display","playlist"); 
     
    2931        * @param skn    The MovieClip that contains the display, playlist and controlbar. 
    3032        **/ 
    31         public function Skinner(skn:MovieClip) { 
    32                 skin = skn; 
     33        public function Skinner(ply:MovieClip) { 
     34                player = ply; 
    3335        }; 
    3436 
     
    5052                        } 
    5153                } else { 
     54                        skin = player['player']; 
    5255                        dispatchEvent(new Event(Event.COMPLETE)); 
    5356                } 
     
    6467        private function loaderHandler(evt:Event) { 
    6568                var cnt = MovieClip(loader.content); 
     69                /* 
    6670                for(var i=0; i<cnt.numChildren; i++) { 
    6771                        var ncd = cnt.getChildAt(i); 
     
    7377                        } 
    7478                } 
     79                */ 
    7580                dispatchEvent(new Event(Event.COMPLETE)); 
    7681        }; 
  • trunk/as3/com/jeroenwijering/views/ControlbarView.as

    r2 r3  
    296296                switch(evt.data.newstate) {  
    297297                        case ModelStates.PLAYING: 
    298                                 if(view.config['controlbar'] == 'above') { 
     298                                if(view.config['controlbar'] == 'over') { 
    299299                                        hiding = setTimeout(moveTimeout,1000); 
    300300                                        view.skin.addEventListener(MouseEvent.MOUSE_MOVE, moveHandler); 
     
    305305                                break; 
    306306                        default:  
    307                                 if(view.config['controlbar'] == 'above') { 
     307                                if(view.config['controlbar'] == 'over') { 
    308308                                        clearTimeout(hiding); 
    309309                                        bar.visible = true; 
  • trunk/as3/com/jeroenwijering/views/DisplayView.as

    r1 r3  
    3636                'bufferIcon', 
    3737                'linkIcon', 
    38                 'fullscreenIcon', 
    3938                'muteIcon' 
    4039        ); 
     
    4544                view = vie; 
    4645                view.addControllerListener(ControllerEvent.ERROR,errorHandler); 
    47                 view.addControllerListener(ControllerEvent.ITEM,itemHandler); 
    4846                view.addControllerListener(ControllerEvent.MUTE,muteHandler); 
    4947                view.addControllerListener(ControllerEvent.RESIZE,resizeHandler); 
     
    6462        /** Receive buffer updates. **/ 
    6563        private function bufferHandler(evt:ModelEvent) { 
    66                 if(evt.data.percentage == 0) { 
    67                         display.bufferIcon.txt.text = ""; 
    68                 } else {  
    69                         display.bufferIcon.txt.text = Strings.zero(evt.data.percentage); 
    70                 } 
     64                display.bufferIcon.txt.text = Strings.zero(evt.data.percentage); 
    7165        }; 
    7266 
     
    8781 
    8882 
    89         /** Show a mute icon if playing. **/ 
    90         private function itemHandler(evt:ControllerEvent) { 
    91                 if(view.config['texts'] == true) { 
    92                         display.texts.title.text = view.playlist[evt.data.index]['title']; 
    93                         display.texts.author.text = view.playlist[evt.data.index]['author']; 
    94                 } else { 
    95                         display.texts.visible = false; 
    96                 } 
    97         }; 
    98  
    99  
    100         /** Logo loaded; now position it **/ 
     83        /** Logo loaded; now position it. **/ 
    10184        private function logoHandler(evt:Event) { 
    10285                if(margins[0] > margins[2]) {  
    103                         display.logo.x = display.back.width - margins[2] - display.logo.width; 
     86                        display.logo.x = display.back.width- margins[2]-display.logo.width; 
    10487                } else { 
    10588                        display.logo.x = margins[0]; 
    10689                } 
    10790                if(margins[1] > margins[3]) { 
    108                         display.logo.y = display.back.height - margins[3] - display.logo.height; 
     91                        display.logo.y = display.back.height- margins[3]-display.logo.height; 
    10992                } else { 
    11093                        display.logo.y = margins[1]; 
     
    129112                var wid = evt.data.width; 
    130113                var hei = evt.data.height; 
    131                 display.back.width = display.mediaMask.width = wid; 
    132                 display.back.height = display.mediaMask.height =  hei; 
    133                 if(view.config['texts']) {  
    134                         display.texts.back.width = display.texts.title.width = display.texts.author.width = wid; 
    135                 } 
     114                display.back.width = display.masker.width = wid; 
     115                display.back.height = display.masker.height =  hei; 
    136116                for(var i in ICONS) { 
    137117                        display[ICONS[i]].x = Math.round(wid/2); 
     
    161141                        display.logo.x, 
    162142                        display.logo.y, 
    163                         display.back.width - display.logo.x - display.logo.width, 
    164                         display.back.height - display.logo.y - display.logo.height 
     143                        display.back.width-display.logo.x-display.logo.width, 
     144                        display.back.height-display.logo.y-display.logo.height 
    165145                ); 
    166146                loader = new Loader(); 
     
    183163                        setIcon('bufferIcon'); 
    184164                } else { 
    185                         if(view.config['playlist'] == 'above') { 
    186                                 setIcon(); 
    187                                 return; 
    188                         } 
    189165                        switch(view.config.displayclick) { 
    190                                 case 'fullscreen': 
    191                                         setIcon('fullscreenIcon'); 
    192                                         break; 
    193166                                case 'play': 
    194167                                        setIcon('playIcon'); 
  • trunk/as3/com/jeroenwijering/views/ExternalView.as

    r1 r3  
    11/** 
    2 * Interface for javascript interaction. 
     2* Interface for javascript interaction and IDE tracing. 
    33**/ 
    44package com.jeroenwijering.views { 
     
    6363                        ExternalInterface.addCallback("addViewListener", addViewListener); 
    6464                        ExternalInterface.addCallback("sendEvent", view.sendEvent); 
     65                        playerReady(); 
    6566                } 
    6667        }; 
     
    9697                if(!dat) { dat = new Object(); } 
    9798                dat.id = ExternalInterface.objectID; 
     99                dat.client = view.config['client']; 
    98100                dat.version = view.config['version']; 
    99101                for each (var itm in listeners) { 
     
    105107 
    106108 
    107         /** Return the config and javascript objects to callers. **/ 
    108         public function getConfig():Object { return view.config; }; 
    109         public function getPlaylist():Array { return view.playlist; }; 
     109        /** Return the config and playlist objects to javascript. **/ 
     110        public function getConfig():Object {  
     111                return view.config;  
     112        }; 
     113        public function getPlaylist():Array { 
     114                return view.playlist; 
     115        }; 
     116 
     117 
     118        /** Send a call to javascript that the player is ready. **/ 
     119        private function playerReady() { 
     120                var dat = { 
     121                        id:ExternalInterface.objectID, 
     122                        client:view.config['client'], 
     123                        version:view.config['version'] 
     124                }; 
     125                try {  
     126                        ExternalInterface.call("playerReady",dat); 
     127                } catch (err:Error) {} 
     128        }; 
    110129 
    111130 
    112131        /** Forward events to tracer and subscribers. **/ 
    113         private function setController(evt:ControllerEvent) { forward('CONTROLLER',evt.type,evt.data); }; 
    114         private function setModel(evt:ModelEvent) { forward('MODEL',evt.type,evt.data); }; 
    115         private function setView(evt:ViewEvent) { forward('VIEW',evt.type,evt.data); }; 
     132        private function setController(evt:ControllerEvent) { 
     133                forward('CONTROLLER',evt.type,evt.data); 
     134        }; 
     135        private function setModel(evt:ModelEvent) { 
     136                forward('MODEL',evt.type,evt.data); 
     137        }; 
     138        private function setView(evt:ViewEvent) { 
     139                forward('VIEW',evt.type,evt.data); 
     140        }; 
    116141 
    117142 
  • trunk/as3/com/jeroenwijering/views/KeyboardView.as

    r1 r3  
    2626        /** Process keyboard events. **/ 
    2727        private function keyHandler(evt:KeyboardEvent) { 
     28                trace(evt.keyCode); 
    2829                switch(evt.keyCode) { 
    2930                        case 37: 
     
    3940                                view.sendEvent('volume',view.config['volume']-10); 
    4041                                break; 
    41                         case 80: 
    42                                 view.sendEvent('play'); 
    43                                 break; 
    4442                        case 67: 
    4543                                view.sendEvent('caption'); 
     
    5452                                view.sendEvent('mute'); 
    5553                                break; 
     54                        case 80: 
     55                                view.sendEvent('play'); 
     56                                break; 
     57                        case 81: 
     58                                view.sendEvent('quality'); 
     59                                break; 
    5660                } 
    5761        }; 
  • trunk/as3/com/jeroenwijering/views/PlaylistButton.as

    r1 r3  
    3535                buttonsize = back.width; 
    3636                view = vie; 
    37                 if(view) {  
     37                if(view) { 
    3838                        resize(wid); 
    3939                        setElements();  
  • trunk/as3/com/jeroenwijering/views/PlaylistView.as

    r1 r3  
    77import com.jeroenwijering.events.*; 
    88import com.jeroenwijering.player.View; 
    9 import com.jeroenwijering.views.PlaylistButton; 
    109import com.jeroenwijering.utils.Draw; 
    1110import flash.display.MovieClip;