root/trunk/as3/com/jeroenwijering/utils/Skinner.as @ 3

Revision 3, 1.8 kB (checked in by jeroen, 18 months ago)

added js initer BUT destroyed controlbar display

Line 
1/**
2* Loads external SWF skin and calculates dimensions.
3**/
4
5
6package com.jeroenwijering.utils {
7
8
9import flash.display.Loader;
10import flash.display.MovieClip;
11import flash.events.*;
12import flash.net.URLRequest;
13
14
15public class Skinner extends EventDispatcher {
16
17
18        /** Reference to the stage graphics. **/
19        public var skin:MovieClip;
20        /** SWF skin loader reference **/
21        private var loader:Loader;
22        /** Reference to the player itself. **/
23        private var player:MovieClip;
24        /** Skinnable elements **/
25        private var ELEMENTS:Array = new Array("controlbar","display","playlist");
26
27
28        /**
29        * Constructor.
30        *
31        * @param skn    The MovieClip that contains the display, playlist and controlbar.
32        **/
33        public function Skinner(ply:MovieClip) {
34                player = ply;
35        };
36
37
38        /**
39        * Start the loading process.
40        *
41        * @param cfg    Object that contains all docking parameters.
42        **/
43        public function load(url:String=undefined) {
44                if(url) {
45                        loader = new Loader();
46                        loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderHandler);
47                        loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);
48                        try {
49                                loader.load(new URLRequest(url));
50                        } catch (err:Error) {
51                                dispatchEvent(new Event(Event.COMPLETE));
52                        }
53                } else {
54                        skin = player['player'];
55                        dispatchEvent(new Event(Event.COMPLETE));
56                }
57        };
58
59
60        /** SWF loading failed; use default skin. **/
61        private function errorHandler(evt:IOErrorEvent) {
62                dispatchEvent(new Event(Event.COMPLETE));
63        };
64
65
66        /** SWF loading completed; add to stage and populate. **/
67        private function loaderHandler(evt:Event) {
68                var cnt = MovieClip(loader.content);
69                /*
70                for(var i=0; i<cnt.numChildren; i++) {
71                        var ncd = cnt.getChildAt(i);
72                        var ocd = skin.getChildByName(ncd.name);
73                        if(ocd) {
74                                skin.removeChild(ocd);
75                                skin.addChild(ncd);
76                                skin[ncd.name] = ncd;
77                        }
78                }
79                */
80                dispatchEvent(new Event(Event.COMPLETE));
81        };
82
83
84}
85
86
87}
Note: See TracBrowser for help on using the browser.