1
4
5 import org.aswing.Event;
6 import org.aswing.FloorPane;
7 import org.aswing.geom.Dimension;
8 import org.aswing.utils.Delegate;
9 import org.aswing.utils.MCUtils;
10
11
16 class org.aswing.JLoadPane extends FloorPane {
17
18
23 public static var ON_LOAD_COMPLETE:String = "onLoadComplete";
24
30 public static var ON_LOAD_ERROR:String = "onLoadError";
31
36 public static var ON_LOAD_INIT:String = "onLoadInit";
37
42 public static var ON_LOAD_PROGRESS:String = "onLoadProgress";
43
48 public static var ON_LOAD_START:String = "onLoadStart";
49
50
51 private var movieClipLoader:MovieClipLoader;
52 private var loaderMC:MovieClip;
53 private var loadedError:Boolean;
54
55
70 public function JLoadPane(path:String, prefferSizeStrategy:Number) {
71 super(path, prefferSizeStrategy);
72 movieClipLoader = new MovieClipLoader();
73 var lis:Object = new Object();
74 lis["onLoadComplete"] = Delegate.create(this, __onLoadComplete);
75 lis["onLoadError"] = Delegate.create(this, __onLoadError);
76 lis["onLoadInit"] = Delegate.create(this, __onLoadInit);
77 lis["onLoadProgress"] = Delegate.create(this, __onLoadProgress);
78 lis["onLoadStart"] = Delegate.create(this, __onLoadStart);
79 movieClipLoader.addListener(lis);
80 loadedError = false;
81 }
82
83
88 public function getFloorMC():MovieClip{
89 return loaderMC;
90 }
91
92
96 public function isLoadedError():Boolean{
97 return loadedError;
98 }
99
100
105 private function loadFloor():Void{
106 if(MCUtils.isMovieClipExist(loaderMC)){
107 loadedError = false;
108 movieClipLoader.loadClip(getPath(), loaderMC);
109 }
110 }
111
112
117 private function createFloorMC():MovieClip{
118 if(MCUtils.isMovieClipExist(target_mc)){
119 floorMC = creater.createMC(target_mc, "floor", getFloorDepth());
120 loaderMC = creater.createMCWithName(floorMC, "loader");
121 }
122 return floorMC;
123 }
124
125
129 public function getProgress():Object{
130 return movieClipLoader.getProgress(loaderMC);
131 }
132
133
134
135 private function __onLoadComplete(targetMC:MovieClip):Void{
136 dispatchEvent(ON_LOAD_COMPLETE, createEventObj(ON_LOAD_COMPLETE));
137 }
138
139 private function __onLoadError(targetMC:MovieClip, errorCode:String):Void{
140 loadedError = true;
141 var obj:Event = createEventObj(ON_LOAD_ERROR);
142 obj["errorCode"] = errorCode;
143 dispatchEvent(ON_LOAD_ERROR, obj);
144 }
145
146 private function __onLoadInit(targetMC:MovieClip):Void{
147 setFloorOriginalSize(new Dimension(floorMC._width, floorMC._height));
148 setLoaded(true);
149 valid = false;
150 dispatchEvent(ON_LOAD_INIT, createEventObj(ON_LOAD_INIT));
151 revalidate();
152 validate();
153 }
154
155 private function __onLoadProgress(targetMC:MovieClip, loadedBytes:Number, totalBytes:Number):Void{
156 var obj:Event = createEventObj(ON_LOAD_PROGRESS);
157 obj["loadedBytes"] = loadedBytes;
158 obj["totalBytes"] = totalBytes;
159 dispatchEvent(ON_LOAD_PROGRESS, obj);
160 }
161
162 private function __onLoadStart(targetMC:MovieClip):Void{
163 dispatchEvent(ON_LOAD_START, createEventObj(ON_LOAD_START));
164 }
165 }
166