Changeset 83


Ignore:
Timestamp:
10/16/08 13:46:59 (5 years ago)
Author:
jeroen
Message:

bugfixes in JS API serialization, controlbar coloring and JS crossdomain API. added first version of snapshot tool

Location:
branches/4.2
Files:
8 added
11 edited

Legend:

Unmodified
Added
Removed
  • branches/4.2/com/jeroenwijering/parsers/ObjectParser.as

    r80 r83  
    5252                'png':'image', 
    5353                'rbs':'sound', 
     54                'sdp':'video', 
    5455                'swf':'image', 
    5556                'vp6':'video' 
  • branches/4.2/com/jeroenwijering/parsers/SMILParser.as

    r80 r83  
    108108                                        break; 
    109109                                default: 
    110                                         trace(att+' - '+obj.attributes()[i].toString()); 
    111110                                        itm[att] = obj.attributes()[i].toString(); 
    112111                                        break; 
  • branches/4.2/com/jeroenwijering/player/Controller.as

    r80 r83  
    6464                view.addEventListener(ViewEvent.STOP,stopHandler); 
    6565                view.addEventListener(ViewEvent.VOLUME,volumeHandler); 
    66                 if(config['file']) { playlister.load(config); } 
    6766        }; 
    6867 
  • branches/4.2/com/jeroenwijering/player/Model.as

    r81 r83  
    3939        public function Model(cfg:Object,skn:MovieClip,ctr:Controller):void { 
    4040                config = cfg; 
     41                if(config['streamscript']) { config['streamer'] = config['streamscript']; } 
    4142                skin = skn; 
    4243                Draw.clear(skin.display.media); 
     
    171172        private function resizeHandler(evt:ControllerEvent=null):void { 
    172173                Stretcher.stretch(skin.display.media,config['width'],config['height'],config['stretching']); 
    173                 Stretcher.stretch(thumb,config['width'],config['height'],config['stretching']); 
     174                if(thumb.width > 0) { 
     175                        Stretcher.stretch(thumb,config['width'],config['height'],config['stretching']); 
     176                } 
    174177        }; 
    175178 
     
    218221                                        } 
    219222                                        break; 
     223                                default: 
     224                                        break; 
    220225                        } 
    221226                        dat.oldstate = config['state']; 
  • branches/4.2/com/jeroenwijering/player/Player.as

    r82 r83  
    2222                date:undefined, 
    2323                duration:0, 
    24                 file:'http://www.jeroenwijering.com/upload/bunnies.xml', 
     24                file:undefined, 
    2525                image:undefined, 
    2626                link:undefined, 
     
    3030                type:undefined, 
    3131 
    32                 backcolor:'ffffff', 
    33                 frontcolor:'000000', 
    34                 lightcolor:'000000', 
    35                 screencolor:'000000', 
     32                backcolor:undefined, 
     33                frontcolor:undefined, 
     34                lightcolor:undefined, 
     35                screencolor:undefined, 
    3636 
    3737                controlbar:'bottom', 
     
    6767                token:undefined, 
    6868                tracecall:undefined, 
    69                 version:'4.2.82' 
     69                version:'4.2.84' 
    7070        }; 
    7171        /** Reference to all stage graphics. **/ 
     
    117117                model = new Model(config,skin,controller); 
    118118                view = new View(config,skin,controller,model,loader); 
     119                controller.start(model,view); 
    119120                loadPlugins(); 
    120121        }; 
     
    138139 
    139140        /** 
    140         * Everything loaded; show and start the player. 
     141        * Everything is now loaded. The player is shown and the file is loaded (when there). 
    141142        *  
    142143        * The View will send a PlayerReady event to all plugins and javascript. 
     
    146147                loader.removeEventListener(SPLoaderEvent.PLUGINS,startPlayer); 
    147148                dispatchEvent(new PlayerEvent(PlayerEvent.READY)); 
    148                 controller.start(model,view); 
    149149                visible = true; 
    150150        }; 
  • branches/4.2/com/jeroenwijering/player/View.as

    r81 r83  
    4141        /** Constructor, save references and subscribe to events. **/ 
    4242        public function View(cfg:Object,skn:MovieClip,ctr:Controller,mdl:Model,ldr:SPLoader):void { 
     43                Security.allowDomain("*"); 
    4344                _config = cfg; 
    4445                _config['client'] = 'FLASH '+Capabilities.version; 
     
    5657                        listeners = new Array(); 
    5758                        setJavascript(); 
     59                        setTimeout(playerReady,50); 
     60                } 
     61                if(config['file']) { 
     62                        setTimeout(sendEvent,200,ViewEvent.LOAD,config); 
    5863                } 
    5964        }; 
     
    6267        /**  Getters for the config parameters, skinning parameters and playlist. **/ 
    6368        override public function get config():Object { return _config; }; 
    64         private function getConfig():Object { return _config; }; 
    6569        override public function get playlist():Array { return controller.playlist; }; 
    66         private function getPlaylist():Array { return controller.playlist; }; 
    6770        override public function get skin():MovieClip { return _skin; }; 
     71 
     72 
     73        /**  
     74        * Javascript getters for the config and playlist.  
     75        * Since parameters with alphanumerical characters tend to crash AS <> JS, they are removed. 
     76        **/ 
     77        private function getConfig():Object { 
     78                var cfg:Object = new Object(); 
     79                for(var itm:String in _config) {  
     80                        if(itm.indexOf('.') == -1) {  
     81                                cfg[itm] = _config[itm]; 
     82                        } 
     83                } 
     84                return cfg;  
     85        }; 
     86        private function getPlaylist():Array {  
     87                return controller.playlist;  
     88        }; 
    6889 
    6990 
     
    111132                dat.client = config['client']; 
    112133                dat.version = config['version']; 
    113                 for each (var itm:String in listeners) { 
    114                         if(itm['target'] == tgt && itm['type'] == typ) { 
    115                                 ExternalInterface.call(itm['callee'],dat); 
     134                for (var itm:String in listeners) { 
     135                        if(listeners[itm]['target'] == tgt && listeners[itm]['type'] == typ) { 
     136                                ExternalInterface.call(listeners[itm]['callee'],dat); 
    116137                        } 
    117138                } 
     
    141162        /** Send a call to javascript that the player is ready. **/ 
    142163        private function playerReady():void { 
    143                 var dat:Object = {id:config['id'],client:config['client'],version:config['version']}; 
    144                 try { 
    145                         ExternalInterface.call("playerReady",dat); 
    146                 } catch (err:Error) {} 
     164                if(ExternalInterface.available) { 
     165                        var dat:Object = {id:config['id'],client:config['client'],version:config['version']}; 
     166                        try { 
     167                                ExternalInterface.call("playerReady",dat); 
     168                        } catch (err:Error) {} 
     169                } 
     170                if(config['file']) {  
     171                        sendEvent(ViewEvent.LOAD,config); 
     172                } 
    147173        }; 
    148174 
     
    204230        private function setJavascript() { 
    205231                try { 
    206                         setTimeout(playerReady,50); 
    207232                        if(ExternalInterface.objectID) { 
    208233                                _config['id'] = ExternalInterface.objectID; 
  • branches/4.2/com/jeroenwijering/plugins/Controlbar.as

    r82 r83  
    199199        /** Handle mouseouts from all buttons **/ 
    200200        private function outHandler(evt:MouseEvent):void { 
    201                 if(bar[evt.target.name]['icon']) {  
     201                if(front) { 
    202202                        bar[evt.target.name]['icon'].transform.colorTransform = front; 
    203203                } else { 
     
    209209        /** Handle clicks from all buttons **/ 
    210210        private function overHandler(evt:MouseEvent):void { 
    211                 if(bar[evt.target.name]['icon']) {  
     211                if(front) { 
    212212                        bar[evt.target.name]['icon'].transform.colorTransform = light; 
    213213                } else { 
     
    294294                        bar.back.transform.colorTransform = clr; 
    295295                } 
    296                 try { 
    297                         front = new ColorTransform(); 
    298                         front.color = uint('0x'+view.config['frontcolor'].substr(-6)); 
    299                         for(var btn:String in BUTTONS) { 
    300                                 if(bar[btn] && bar[btn]['icon']) { 
    301                                         bar[btn]['icon'].transform.colorTransform = front; 
    302                                 } 
    303                         } 
    304                         for(var sld:String in SLIDERS) { 
    305                                 if(bar[sld] && bar[sld]['icon']) { 
    306                                         bar[sld]['icon'].transform.colorTransform = front; 
    307                                         bar[sld]['mark'].transform.colorTransform = front; 
    308                                         bar[sld]['rail'].transform.colorTransform = front; 
    309                                 } 
    310                         } 
    311                         bar.elapsedText.textColor = front.color; 
    312                         bar.totalText.textColor = front.color; 
    313                 } catch (err:Error) {} 
    314                 light = new ColorTransform(); 
    315                 light.color = uint('0x'+view.config['lightcolor'].substr(-6)); 
    316                 try { 
    317                         bar['volumeSlider']['mark'].transform.colorTransform = light; 
    318                         bar['timeSlider']['done'].transform.colorTransform = light; 
    319                 } catch (err:Error) {} 
     296                if(view.config['frontcolor']) { 
     297                        try { 
     298                                front = new ColorTransform(); 
     299                                front.color = uint('0x'+view.config['frontcolor'].substr(-6)); 
     300                                for(var btn:String in BUTTONS) { 
     301                                        if(bar[btn]) { 
     302                                                bar[btn]['icon'].transform.colorTransform = front; 
     303                                        } 
     304                                } 
     305                                for(var sld:String in SLIDERS) { 
     306                                        if(bar[sld]) { 
     307                                                bar[sld]['icon'].transform.colorTransform = front; 
     308                                                bar[sld]['mark'].transform.colorTransform = front; 
     309                                                bar[sld]['rail'].transform.colorTransform = front; 
     310                                        } 
     311                                } 
     312                                bar.elapsedText.textColor = front.color; 
     313                                bar.totalText.textColor = front.color; 
     314                        } catch (err:Error) {} 
     315                } 
     316                if(view.config['lightcolor']) { 
     317                        light = new ColorTransform(); 
     318                        light.color = uint('0x'+view.config['lightcolor'].substr(-6)); 
     319                } else {  
     320                        light = front; 
     321                } 
     322                if(light) { 
     323                        try { 
     324                                bar['volumeSlider']['mark'].transform.colorTransform = light; 
     325                                bar['timeSlider']['done'].transform.colorTransform = light; 
     326                        } catch (err:Error) {} 
     327                } 
    320328        }; 
    321329 
  • branches/4.2/com/jeroenwijering/plugins/Display.as

    r82 r83  
    5858                display.media.mask = display.masker; 
    5959                display.mouseChildren = false; 
    60                 var clr:ColorTransform = new ColorTransform(); 
    61                 clr.color = uint('0x'+view.config['screencolor'].substr(-6)); 
    62                 display.back.transform.colorTransform = clr; 
     60                if(view.config['screencolor']) { 
     61                        var clr:ColorTransform = new ColorTransform(); 
     62                        clr.color = uint('0x'+view.config['screencolor'].substr(-6)); 
     63                        display.back.transform.colorTransform = clr; 
     64                } 
    6365                if(view.config['displayclick'] != 'none') { 
    6466                        display.addEventListener(MouseEvent.CLICK,clickHandler); 
  • branches/4.2/com/jeroenwijering/plugins/Playlist.as

    r82 r83  
    5050        public function initializePlugin(vie:AbstractView):void { 
    5151                view = vie; 
     52                if(view.config['playlist'] == 'none') { return; }1 
    5253                view.addControllerListener(ControllerEvent.ITEM,itemHandler); 
    5354                view.addControllerListener(ControllerEvent.PLAYLIST,playlistHandler); 
     
    143144                        scrollInterval = setInterval(scrollEase,50,idx*buttonheight/proportion,-idx*buttonheight+clip.masker.y); 
    144145                } 
    145                 if(buttons[idx].c['back']) { 
     146                if(light) { 
    146147                        for (var itm:String in view.playlist[idx]) { 
    147148                                if(buttons[idx].c[itm]) { 
     
    149150                                } 
    150151                        } 
     152                } 
     153                if(back) { 
    151154                        buttons[idx].c['back'].transform.colorTransform = back; 
    152155                } 
    153156                buttons[idx].c.gotoAndPlay('active'); 
    154157                if(!isNaN(active)) { 
    155                         if(buttons[idx].c['back']) { 
     158                        if(front) { 
    156159                                for (var act:String in view.playlist[active]) { 
    157160                                        if(buttons[active].c[act]) { 
     
    176179        private function overHandler(evt:MouseEvent):void { 
    177180                var idx:Number = Number(evt.target.name); 
    178                 if(buttons[idx].c['back']) { 
     181                if(front) { 
    179182                        for (var itm:String in view.playlist[idx]) { 
    180183                                if(buttons[idx].c[itm]) { 
     
    191194        private function outHandler(evt:MouseEvent):void { 
    192195                var idx:Number = Number(evt.target.name); 
    193                 if(buttons[idx].c['back']) { 
     196                if(front) { 
    194197                        for (var itm:String in view.playlist[idx]) { 
    195198                                if(buttons[idx].c[itm]) { 
     
    282285        /** Init the colors. **/ 
    283286        private function setColors():void { 
    284                 back = new ColorTransform(); 
    285                 back.color = uint('0x'+view.config['backcolor'].substr(-6)); 
    286                 clip.back.transform.colorTransform = back; 
    287                 front = new ColorTransform(); 
    288                 front.color = uint('0x'+view.config['frontcolor'].substr(-6)); 
    289                 try {  
    290                         clip.slider.icon.transform.colorTransform = front; 
    291                         clip.slider.rail.transform.colorTransform = front; 
     287                if(view.config['backcolor']) {  
     288                        back = new ColorTransform(); 
     289                        back.color = uint('0x'+view.config['backcolor'].substr(-6)); 
     290                        clip.back.transform.colorTransform = back; 
    292291                        clip.slider.back.transform.colorTransform = back; 
    293                 } catch (err:Error) {} 
    294                 light = new ColorTransform(); 
    295                 light.color = uint('0x'+view.config['lightcolor'].substr(-6)); 
     292                } 
     293                if(view.config['frontcolor']) { 
     294                        front = new ColorTransform(); 
     295                        front.color = uint('0x'+view.config['frontcolor'].substr(-6)); 
     296                        try {  
     297                                clip.slider.icon.transform.colorTransform = front; 
     298                                clip.slider.rail.transform.colorTransform = front; 
     299                        } catch (err:Error) {} 
     300                } 
     301                if(view.config['lightcolor']) { 
     302                        light = new ColorTransform(); 
     303                        light.color = uint('0x'+view.config['lightcolor'].substr(-6)); 
     304                } else {  
     305                        light = front; 
     306                } 
    296307        }; 
    297308 
     
    328339                        } 
    329340                } 
    330                 if(buttons[idx].c['back']) { 
     341                if(back) { 
    331342                        buttons[idx].c['back'].transform.colorTransform = back; 
    332343                } 
     
    358369        /** Highlight the icon on rollover. **/ 
    359370        private function soverHandler(evt:MouseEvent):void { 
    360                 if(light) { 
     371                if(front) { 
    361372                        clip.slider.icon.transform.colorTransform = light; 
    362373                } else {  
Note: See TracChangeset for help on using the changeset viewer.