fix
This commit is contained in:
@@ -56,6 +56,8 @@ class GuiB {
|
|||||||
var object:Dynamic = instance(type);
|
var object:Dynamic = instance(type);
|
||||||
new GuiF(object, data, links).fill();
|
new GuiF(object, data, links).fill();
|
||||||
return object;
|
return object;
|
||||||
|
} else if (Std.is(data, String)) {
|
||||||
|
return GuiF.convertString(data, links);
|
||||||
} else {
|
} else {
|
||||||
new GuiF(data, data, links).fill();
|
new GuiF(data, data, links).fill();
|
||||||
return data;
|
return data;
|
||||||
@@ -82,6 +84,29 @@ class GuiF {
|
|||||||
this.links = links;
|
this.links = links;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function convertString(value:Dynamic, ?links:Dynamic):Dynamic {
|
||||||
|
var s:String = cast(value, String);
|
||||||
|
var c:String = s.charAt(0);
|
||||||
|
if (c == "#") {
|
||||||
|
value = Reflect.field(links, s.substr(1));
|
||||||
|
} else if (c == "~") {
|
||||||
|
var a:Array<String> = s.substr(1).split(":");
|
||||||
|
var e:Enum<Dynamic> = Type.resolveEnum(a[0]);
|
||||||
|
value = Type.createEnum(e, a[1]);
|
||||||
|
} else if (c == "@") {
|
||||||
|
if (s.charAt(1) == "~") {
|
||||||
|
var a:Array<String> = s.substr(2).split(":");
|
||||||
|
value = Assets.getBitmapData(a[1]);
|
||||||
|
} else {
|
||||||
|
var a:Array<String> = s.substr(1).split(":");
|
||||||
|
value = Reflect.field(Provider.get(IResources), a[0]).get(a[1]);
|
||||||
|
}
|
||||||
|
} else if (~/0x[A-Fa-f\d]{6}/.match(value)) {
|
||||||
|
value = Std.parseInt(value);
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
public function fill() {
|
public function fill() {
|
||||||
var fields:Array<String> = Reflect.fields(data);
|
var fields:Array<String> = Reflect.fields(data);
|
||||||
for (field in fields) {
|
for (field in fields) {
|
||||||
|
|||||||
Reference in New Issue
Block a user