added frameswicther
This commit is contained in:
39
haxework/frame/FrameSwitcher.hx
Executable file
39
haxework/frame/FrameSwitcher.hx
Executable file
@@ -0,0 +1,39 @@
|
|||||||
|
package haxework.frame;
|
||||||
|
|
||||||
|
import flash.display.Sprite;
|
||||||
|
import haxework.gui.IView;
|
||||||
|
import haxework.gui.GroupView;
|
||||||
|
|
||||||
|
class FrameSwitcher extends GroupView implements IFrameSwitcher<Sprite> {
|
||||||
|
|
||||||
|
public var current(default, null):Null<IView<Sprite>>;
|
||||||
|
private var frames:Map<String, IView<Sprite>>;
|
||||||
|
|
||||||
|
public function new() {
|
||||||
|
super();
|
||||||
|
frames = new Map<String, IView<Sprite>>();
|
||||||
|
current = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function change(id:String):IView<Sprite> {
|
||||||
|
if (current != null) {
|
||||||
|
if (current.id == id) return current;
|
||||||
|
removeView(current);
|
||||||
|
}
|
||||||
|
current = frames.get(id);
|
||||||
|
addView(current);
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
|
||||||
|
override public function set_views(value:Array<IView<Sprite>>):Array<IView<Sprite>> {
|
||||||
|
views = [];
|
||||||
|
if (value.length > 0) {
|
||||||
|
for (view in value) {
|
||||||
|
view.pWidth = 100;
|
||||||
|
view.pHeight = 100;
|
||||||
|
frames.set(view.id, view);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
8
haxework/frame/IFrameSwitcher.hx
Executable file
8
haxework/frame/IFrameSwitcher.hx
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
package haxework.frame;
|
||||||
|
|
||||||
|
import haxework.gui.IView;
|
||||||
|
|
||||||
|
interface IFrameSwitcher<C> extends IView<C> {
|
||||||
|
public var current(default, null):Null<IView<C>>;
|
||||||
|
public function change(id:String):IView<C>;
|
||||||
|
}
|
||||||
@@ -51,6 +51,7 @@ class GroupView extends View implements IGroupView<Sprite> {
|
|||||||
viewsById.set(view.id, view);
|
viewsById.set(view.id, view);
|
||||||
content.addChild(view.content);
|
content.addChild(view.content);
|
||||||
view.parent = this;
|
view.parent = this;
|
||||||
|
invalidate();
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,6 +60,7 @@ class GroupView extends View implements IGroupView<Sprite> {
|
|||||||
viewsById.remove(view.id);
|
viewsById.remove(view.id);
|
||||||
views.remove(view);
|
views.remove(view);
|
||||||
content.removeChild(view.content);
|
content.removeChild(view.content);
|
||||||
|
invalidate();
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ import haxework.gui.ButtonView;
|
|||||||
import haxework.gui.skin.ColorSkin;
|
import haxework.gui.skin.ColorSkin;
|
||||||
import haxework.gui.skin.ButtonColorSkin;
|
import haxework.gui.skin.ButtonColorSkin;
|
||||||
|
|
||||||
|
import haxework.frame.FrameSwitcher;
|
||||||
|
|
||||||
class GuiBuilder {
|
class GuiBuilder {
|
||||||
|
|
||||||
private function new() {}
|
private function new() {}
|
||||||
|
|||||||
Reference in New Issue
Block a user