source: trunk/fl5/src/com/longtailvideo/jwplayer/view/SWFSkin.as @ 315

Revision 315, 1.4 KB checked in by pablo, 4 years ago (diff)

Skinning and related tests

Line 
1package com.longtailvideo.jwplayer.view {
2        import com.longtailvideo.jwplayer.utils.AssetLoader;
3       
4        import flash.display.DisplayObject;
5        import flash.display.DisplayObjectContainer;
6        import flash.display.Sprite;
7        import flash.events.ErrorEvent;
8        import flash.events.Event;
9
10        public class SWFSkin extends SkinBase implements ISkin {
11
12                public function SWFSkin(loadedSkin:DisplayObject=null) {
13                        if (loadedSkin) {
14                                overwriteSkin(loadedSkin);
15                        }
16                }
17
18                protected function overwriteSkin(newSkin:DisplayObject):void {
19                        if (newSkin is Sprite) {
20                                _skin = newSkin as Sprite;
21                        } else if (newSkin != null) {
22                                _skin = new Sprite();
23                                _skin.addChild(newSkin);
24                        }
25                }
26
27                public override function load(url:String=null):void {
28                        if (url) {
29                                var loader:AssetLoader = new AssetLoader();
30                                loader.addEventListener(Event.COMPLETE, loadComplete);
31                                loader.addEventListener(ErrorEvent.ERROR, loadError);
32                                loader.load(url, DisplayObject);
33                        } else if (_skin.numChildren == 0) {
34                                sendError("Skin must load from URL if skin is empty.");
35                        }
36                }
37
38                protected function loadComplete(evt:Event):void {
39                        var loader:AssetLoader = AssetLoader(evt.target);
40                        overwriteSkin(DisplayObjectContainer(loader.loadedObject).getChildByName('player'));
41                        dispatchEvent(new Event(Event.COMPLETE));
42                }
43
44                protected function loadError(evt:ErrorEvent):void {
45                        sendError(evt.text);
46                }
47
48                public override function getSkinProperties():SkinProperties {
49                        return null;
50                }
51
52        }
53}
Note: See TracBrowser for help on using the repository browser.