source: trunk/fl5/src/com/longtailvideo/jwplayer/view/Logo.as @ 575

Revision 575, 3.9 KB checked in by pablo, 4 years ago (diff)

Fixes automatic plugin positioning
Watermark goes on top of plugins

Line 
1package com.longtailvideo.jwplayer.view {
2        import com.longtailvideo.jwplayer.events.PlayerStateEvent;
3        import com.longtailvideo.jwplayer.player.IPlayer;
4        import com.longtailvideo.jwplayer.player.Player;
5        import com.longtailvideo.jwplayer.player.PlayerState;
6        import com.longtailvideo.jwplayer.utils.Animations;
7        import com.longtailvideo.jwplayer.utils.Logger;
8       
9        import flash.display.Loader;
10        import flash.display.MovieClip;
11        import flash.events.Event;
12        import flash.events.IOErrorEvent;
13        import flash.events.MouseEvent;
14        import flash.net.URLRequest;
15        import flash.net.navigateToURL;
16        import flash.utils.clearTimeout;
17        import flash.utils.setTimeout;
18       
19       
20        public class Logo extends MovieClip {
21                /** Configuration defaults **/
22                private var defaults:Object = {
23                        file: "http://logo.longtailvideo.com.s3.amazonaws.com/logo.png",
24                        link: "http://www.longtailvideo.com/players/jw-flv-player/",
25                        margin: 8,
26                        out: 0.5,
27                        over: 1,
28                        state: false,
29                        timeout: 3
30                }
31                /** Reference to the player **/
32                private var _player:IPlayer;
33                /** Reference to the current fade timer **/
34                private var timeout:uint;
35                /** Reference to the loader **/
36                private var loader:Loader;
37                /** Animations handler **/
38                private var animations:Animations;
39               
40                /** Dimensions **/
41                private var _width:Number;
42                private var _height:Number;
43               
44                /** Constructor **/
45                public function Logo(player:IPlayer) {
46                        super();
47                        this.buttonMode = true;
48                        this.mouseChildren = false;
49                        animations = new Animations(this);
50                        _player = player;
51                        player.addEventListener(PlayerStateEvent.JWPLAYER_PLAYER_STATE, stateHandler);
52                        addEventListener(MouseEvent.CLICK, clickHandler);
53                        addEventListener(MouseEvent.MOUSE_OVER, overHandler);
54                        addEventListener(MouseEvent.MOUSE_OUT, outHandler);
55                        if (getConfigParam('file')){
56                                loader = new Loader();
57                                loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderHandler);
58                                loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
59                                loader.load(new URLRequest(getConfigParam('file')));
60                        }
61                }
62               
63                /** Logo loaded - add to display **/
64                private function loaderHandler(evt:Event):void {
65                        visible = false;
66                        addChild(loader);
67                        resize(_width, _height);
68                }
69               
70                /** Logo failed to load - die **/
71                private function errorHandler(evt:IOErrorEvent):void {
72                        Logger.log("Failed to load logo: " + evt.text);
73                }
74               
75               
76                /** Handles mouse clicks **/
77                private function clickHandler(evt:MouseEvent):void {
78                        _player.pause();
79                        if (getConfigParam('link')) {
80                                navigateToURL(new URLRequest(getConfigParam('link')));
81                        }
82                }
83               
84                /** Handles mouse outs **/
85                private function outHandler(evt:MouseEvent):void {
86                        alpha = getConfigParam('out');
87                }
88               
89               
90                /** Handles mouse overs **/
91                private function overHandler(evt:MouseEvent):void {
92                        alpha = getConfigParam('over');
93                }
94               
95               
96                /** Handles state changes **/
97                private function stateHandler(evt:PlayerStateEvent):void {
98                        if (_player.state == PlayerState.BUFFERING) {
99                                clearTimeout(timeout);
100                                show();
101                        }
102                }
103               
104               
105                /** Fade in **/
106                private function show():void {
107                        visible = true;
108                        animations.fade(getConfigParam('out'), 0.1);
109                        timeout = setTimeout(hide, getConfigParam('timeout') * 1000);
110                        mouseEnabled = true;
111                }
112               
113               
114                /** Fade out **/
115                private function hide():void {
116                        mouseEnabled = false;
117                        animations.fade(0, 0.1);
118                }
119               
120               
121                /** Resizes the logo **/
122                public function resize(width:Number, height:Number):void {
123                        _width = width;
124                        _height = height;
125                        loader.x = defaults['margin'];
126                        loader.y = _height - loader.height - defaults['margin'];
127                }
128               
129               
130                /** Gets a configuration parameter **/
131                private function getConfigParam(param:String):* {
132                        var result:*;
133                        result = defaults[param];
134                        if (_player.commercial && _player.config.pluginConfig("logo")[param]) {
135                                result = _player.config.pluginConfig("logo")[param];
136                        }
137                        return result;
138                }
139        }
140}
Note: See TracBrowser for help on using the repository browser.