public override void Setup_AfterAdd(XML xml) { base.Setup_AfterAdd(xml); XML cxml = xml.GetNode("gearColor"); if (cxml != null) gearColor.Setup(cxml); }
static public int GetNode(IntPtr l) { try { FairyGUI.Utils.XML self = (FairyGUI.Utils.XML)checkSelf(l); System.String a1; checkType(l, 2, out a1); var ret = self.GetNode(a1); pushValue(l, true); pushValue(l, ret); return(2); } catch (Exception e) { return(error(l, e)); } }
public override void Setup_AfterAdd(XML xml) { base.Setup_AfterAdd(xml); XML cxml = xml.GetNode("gearColor"); if (cxml != null) gearColor.Setup(cxml); UpdateTextFormat(); string str = xml.GetAttribute("text"); if (str != null && str.Length > 0) this.text = str; }
public virtual void ConstructFromXML(XML xml) { string str; string[] arr; underConstruct = true; arr = xml.GetAttributeArray("size"); sourceWidth = int.Parse(arr[0]); sourceHeight = int.Parse(arr[1]); initWidth = sourceWidth; initHeight = sourceHeight; SetSize(sourceWidth, sourceHeight); arr = xml.GetAttributeArray("pivot"); if (arr != null) { float f1 = float.Parse(arr[0]); float f2 = float.Parse(arr[1]); this.SetPivot(f1, f2, xml.GetAttributeBool("anchor")); } this.opaque = xml.GetAttributeBool("opaque", true); arr = xml.GetAttributeArray("hitTest"); if (arr != null) { PixelHitTestData hitTestData = _packageItem.owner.GetPixelHitTestData(arr[0]); if (hitTestData != null) this.rootContainer.hitArea = new PixelHitTest(hitTestData, int.Parse(arr[1]), int.Parse(arr[2])); } OverflowType overflow; str = xml.GetAttribute("overflow"); if (str != null) overflow = FieldTypes.ParseOverflowType(str); else overflow = OverflowType.Visible; str = xml.GetAttribute("margin"); if (str != null) _margin.Parse(str); if (overflow == OverflowType.Scroll) { ScrollType scroll; str = xml.GetAttribute("scroll"); if (str != null) scroll = FieldTypes.ParseScrollType(str); else scroll = ScrollType.Vertical; ScrollBarDisplayType scrollBarDisplay; str = xml.GetAttribute("scrollBar"); if (str != null) scrollBarDisplay = FieldTypes.ParseScrollBarDisplayType(str); else scrollBarDisplay = ScrollBarDisplayType.Default; int scrollBarFlags = xml.GetAttributeInt("scrollBarFlags"); Margin scrollBarMargin = new Margin(); str = xml.GetAttribute("scrollBarMargin"); if (str != null) scrollBarMargin.Parse(str); string vtScrollBarRes = null; string hzScrollBarRes = null; arr = xml.GetAttributeArray("scrollBarRes"); if (arr != null) { vtScrollBarRes = arr[0]; hzScrollBarRes = arr[1]; } SetupScroll(scrollBarMargin, scroll, scrollBarDisplay, scrollBarFlags, vtScrollBarRes, hzScrollBarRes); } else SetupOverflow(overflow); arr = xml.GetAttributeArray("clipSoftness"); if (arr != null) this.clipSoftness = new Vector2(int.Parse(arr[0]), int.Parse(arr[1])); _buildingDisplayList = true; XMLList col = xml.Elements("controller"); Controller controller; foreach (XML cxml in col) { controller = new Controller(); _controllers.Add(controller); controller.parent = this; controller.Setup(cxml); } XML listNode = xml.GetNode("displayList"); if (listNode != null) { col = listNode.Elements(); GObject u; foreach (XML cxml in col) { u = ConstructChild(cxml); if (u == null) continue; u.underConstruct = true; u.constructingData = cxml; u.Setup_BeforeAdd(cxml); AddChild(u); } } this.relations.Setup(xml); int cnt = _children.Count; for (int i = 0; i < cnt; i++) { GObject u = _children[i]; u.relations.Setup(u.constructingData); } for (int i = 0; i < cnt; i++) { GObject u = _children[i]; u.Setup_AfterAdd(u.constructingData); u.underConstruct = false; u.constructingData = null; } str = xml.GetAttribute("mask"); if (str != null) this.mask = GetChildById(str).displayObject; XMLList transCol = xml.Elements("transition"); foreach (XML cxml in transCol) { Transition trans = new Transition(this); trans.Setup(cxml); _transitions.Add(trans); } if (_transitions.Count > 0) { this.onAddedToStage.Add(__addedToStage); this.onRemovedFromStage.Add(__removedFromStage); } ApplyAllControllers(); _buildingDisplayList = false; underConstruct = false; BuildNativeDisplayList(); }
public override void Setup_AfterAdd(XML cxml) { base.Setup_AfterAdd(cxml); XML xml = cxml.GetNode("Slider"); if (xml == null) return; _value = xml.GetAttributeInt("value"); _max = xml.GetAttributeInt("max"); Update(); }
void TranslateComponent(XML xml, Dictionary<string, string> strings) { XML listNode = xml.GetNode("displayList"); if (listNode == null) return; XMLList col = listNode.Elements(); string ename, elementId, value; foreach (XML cxml in col) { ename = cxml.name; elementId = cxml.GetAttribute("id"); if (cxml.HasAttribute("tooltips")) { if (strings.TryGetValue(elementId + "-tips", out value)) cxml.SetAttribute("tooltips", value); } if (ename == "text" || ename == "richtext") { if (strings.TryGetValue(elementId, out value)) cxml.SetAttribute("text", value); } else if (ename == "list") { XMLList items = cxml.Elements("item"); int j = 0; foreach (XML exml in items) { if (strings.TryGetValue(elementId + "-" + j, out value)) exml.SetAttribute("title", value); j++; } } else if (ename == "component") { XML dxml = cxml.GetNode("Button"); if (dxml != null) { if (strings.TryGetValue(elementId, out value)) dxml.SetAttribute("title", value); if (strings.TryGetValue(elementId + "-0", out value)) dxml.SetAttribute("selectedTitle", value); } else { dxml = cxml.GetNode("Label"); if (dxml != null) { if (strings.TryGetValue(elementId, out value)) dxml.SetAttribute("title", value); } else { dxml = cxml.GetNode("ComboBox"); if (dxml != null) { if (strings.TryGetValue(elementId, out value)) dxml.SetAttribute("title", value); XMLList items = dxml.Elements("item"); int j = 0; foreach (XML exml in items) { if (strings.TryGetValue(elementId + "-" + j, out value)) exml.SetAttribute("title", value); j++; } } } } } } }
public override void Setup_AfterAdd(XML cxml) { base.Setup_AfterAdd(cxml); XML xml = cxml.GetNode("ComboBox"); if (xml == null) return; string str; str = xml.GetAttribute("titleColor"); if (str != null) this.titleColor = ToolSet.ConvertFromHtmlColor(str); visibleItemCount = xml.GetAttributeInt("visibleItemCount", visibleItemCount); _popupDirection = xml.GetAttribute("direction", _popupDirection); XMLList col = xml.Elements("item"); _items = new string[col.Count]; _values = new string[col.Count]; int i = 0; foreach (XML ix in col) { _items[i] = ix.GetAttribute("title"); _values[i] = ix.GetAttribute("value"); i++; } str = xml.GetAttribute("title"); if (str != null && str.Length > 0) { this.text = str; _selectedIndex = Array.IndexOf(_items, str); } else if (_items.Length > 0) { _selectedIndex = 0; this.text = _items[0]; } else _selectedIndex = -1; }
void LoadMovieClip(PackageItem item) { string str = GetDesc(item.id + ".xml"); XML xml = new XML(str); string[] arr = null; arr = xml.GetAttributeArray("pivot"); if (arr != null) { item.pivot.x = int.Parse(arr[0]); item.pivot.y = int.Parse(arr[1]); } str = xml.GetAttribute("interval"); if (str != null) item.interval = float.Parse(str) / 1000f; item.swing = xml.GetAttributeBool("swing", false); str = xml.GetAttribute("repeatDelay"); if (str != null) item.repeatDelay = float.Parse(str) / 1000f; int frameCount = xml.GetAttributeInt("frameCount"); item.frames = new Frame[frameCount]; XMLList frameNodes = xml.GetNode("frames").Elements(); int i = 0; foreach (XML frameNode in frameNodes) { Frame frame = new Frame(); arr = frameNode.GetAttributeArray("rect"); frame.rect = new Rect(int.Parse(arr[0]), int.Parse(arr[1]), int.Parse(arr[2]), int.Parse(arr[3])); str = frameNode.GetAttribute("addDelay"); if (str != null) frame.addDelay = float.Parse(str) / 1000f; AtlasSprite sprite; if (_sprites.TryGetValue(item.id + "_" + i, out sprite)) frame.texture = CreateSpriteTexture(sprite); item.frames[i] = frame; i++; } }
public override void Setup_AfterAdd(XML cxml) { base.Setup_AfterAdd(cxml); XML xml = cxml.GetNode("ProgressBar"); if (xml != null) { _value = xml.GetAttributeInt("value"); _max = xml.GetAttributeInt("max"); } Update(_value); }
public override void Setup_AfterAdd(XML cxml) { base.Setup_AfterAdd(cxml); XML xml = cxml.GetNode("Label"); if (xml == null) { this.title = string.Empty; this.icon = null; return; } this.title = xml.GetAttribute("title"); this.icon = xml.GetAttribute("icon"); string str = xml.GetAttribute("titleColor"); if (str != null) this.titleColor = ToolSet.ConvertFromHtmlColor(str); }
public override void ConstructFromXML(XML cxml) { base.ConstructFromXML(cxml); XML xml = cxml.GetNode("Slider"); string str; str = xml.GetAttribute("titleType"); if (str != null) _titleType = FieldTypes.ParseProgressTitleType(str); else _titleType = ProgressTitleType.Percent; _titleObject = GetChild("title") as GTextField; _barObjectH = GetChild("bar"); _barObjectV = GetChild("bar_v"); _aniObject = GetChild("ani") as GMovieClip; _gripObject = GetChild("grip"); if (_barObjectH != null) { _barMaxWidth = _barObjectH.width; _barMaxWidthDelta = this.width - _barMaxWidth; } if (_barObjectV != null) { _barMaxHeight = _barObjectV.height; _barMaxHeightDelta = this.height - _barMaxHeight; } if (_gripObject != null) { _gripObject.onTouchBegin.Add(__gripTouchBegin); _gripObject.onTouchEnd.Add(__gripTouchEnd); } }
void LoadMovieClip(PackageItem item) { string str = _descPack[item.id + ".xml"]; XML xml = new XML(str); string[] arr = null; str = xml.GetAttribute("interval"); if (str != null) item.interval = float.Parse(str) / 1000f; item.swing = xml.GetAttributeBool("swing", false); str = xml.GetAttribute("repeatDelay"); if (str != null) item.repeatDelay = float.Parse(str) / 1000f; int frameCount = xml.GetAttributeInt("frameCount"); item.frames = new MovieClip.Frame[frameCount]; int i = 0; string spriteId; XML frameNode; MovieClip.Frame frame; AtlasSprite sprite; XMLList.Enumerator et = xml.GetNode("frames").GetEnumerator(); while (et.MoveNext()) { frameNode = et.Current; frame = new MovieClip.Frame(); arr = frameNode.GetAttributeArray("rect"); frame.rect = new Rect(int.Parse(arr[0]), int.Parse(arr[1]), int.Parse(arr[2]), int.Parse(arr[3])); str = frameNode.GetAttribute("addDelay"); if (str != null) frame.addDelay = float.Parse(str) / 1000f; str = frameNode.GetAttribute("sprite"); if (str != null) spriteId = item.id + "_" + str; else if (frame.rect.width != 0) spriteId = item.id + "_" + i; else spriteId = null; if (spriteId != null && _sprites.TryGetValue(spriteId, out sprite)) { PackageItem atlasItem = _itemsById[sprite.atlas]; if (atlasItem != null) { if (item.texture == null) item.texture = (NTexture)GetItemAsset(atlasItem); frame.uvRect = new Rect(sprite.rect.x / item.texture.width * item.texture.uvRect.width, 1 - sprite.rect.yMax * item.texture.uvRect.height / item.texture.height, sprite.rect.width * item.texture.uvRect.width / item.texture.width, sprite.rect.height * item.texture.uvRect.height / item.texture.height); } } item.frames[i] = frame; i++; } }
public override void Setup_AfterAdd(XML cxml) { base.Setup_AfterAdd(cxml); XML xml = cxml.GetNode("Label"); if (xml == null) return; string str; str = xml.GetAttribute("title"); if (str != null) this.title = str; str = xml.GetAttribute("icon"); if (str != null) this.icon = str; str = xml.GetAttribute("titleColor"); if (str != null) this.titleColor = ToolSet.ConvertFromHtmlColor(str); if (_titleObject is GTextInput) { str = xml.GetAttribute("promptText"); if (str != null) ((GTextInput)_titleObject).promptText = str; } }
public virtual void ConstructFromXML(XML xml) { string str; string[] arr; underConstruct = true; arr = xml.GetAttributeArray("size"); sourceWidth = int.Parse(arr[0]); sourceHeight = int.Parse(arr[1]); initWidth = sourceWidth; initHeight = sourceHeight; OverflowType overflow; str = xml.GetAttribute("overflow"); if (str != null) overflow = FieldTypes.ParseOverflowType(str); else overflow = OverflowType.Visible; ScrollType scroll; str = xml.GetAttribute("scroll"); if (str != null) scroll = FieldTypes.ParseScrollType(str); else scroll = ScrollType.Vertical; ScrollBarDisplayType scrollBarDisplay; str = xml.GetAttribute("scrollBar"); if (str != null) scrollBarDisplay = FieldTypes.ParseScrollBarDisplayType(str); else scrollBarDisplay = ScrollBarDisplayType.Default; int scrollBarFlags = xml.GetAttributeInt("scrollBarFlags"); Margin scrollBarMargin = new Margin(); str = xml.GetAttribute("scrollBarMargin"); if (str != null) scrollBarMargin.Parse(str); str = xml.GetAttribute("margin"); if (str != null) _margin.Parse(str); SetSize(sourceWidth, sourceHeight); SetupOverflowAndScroll(overflow, scrollBarMargin, scroll, scrollBarDisplay, scrollBarFlags); arr = xml.GetAttributeArray("clipSoftness"); if (arr != null) this.clipSoftness = new Vector2(int.Parse(arr[0]), int.Parse(arr[1])); _buildingDisplayList = true; XMLList col = xml.Elements("controller"); Controller controller; foreach (XML cxml in col) { controller = new Controller(); _controllers.Add(controller); controller.parent = this; controller.Setup(cxml); } XML listNode = xml.GetNode("displayList"); if (listNode != null) { col = listNode.Elements(); GObject u; foreach (XML cxml in col) { u = ConstructChild(cxml); if (u == null) continue; u.underConstruct = true; u.constructingData = cxml; u.Setup_BeforeAdd(cxml); AddChild(u); } } this.relations.Setup(xml); int cnt = _children.Count; for (int i = 0; i < cnt; i++) { GObject u = _children[i]; u.relations.Setup(u.constructingData); } for (int i = 0; i < cnt; i++) { GObject u = _children[i]; u.Setup_AfterAdd(u.constructingData); u.underConstruct = false; u.constructingData = null; } XMLList transCol = xml.Elements("transition"); foreach (XML cxml in transCol) { Transition trans = new Transition(this); trans.Setup(cxml); _transitions.Add(trans); } ApplyAllControllers(); _buildingDisplayList = false; underConstruct = false; //build real display list foreach (GObject child in _children) { if (child.displayObject != null && child.finalVisible) container.AddChild(child.displayObject); } }
public virtual void Setup_AfterAdd(XML xml) { XML cxml = null; string str; str = xml.GetAttribute("group"); if (str != null) group = parent.GetChildById(str) as GGroup; cxml = xml.GetNode("gearDisplay"); if (cxml != null) gearDisplay.Setup(cxml); cxml = xml.GetNode("gearXY"); if (cxml != null) gearXY.Setup(cxml); cxml = xml.GetNode("gearSize"); if (cxml != null) gearSize.Setup(cxml); cxml = xml.GetNode("gearLook"); if (cxml != null) gearLook.Setup(cxml); }
public override void ConstructFromXML(XML cxml) { base.ConstructFromXML(cxml); XML xml = cxml.GetNode("ProgressBar"); string str; str = xml.GetAttribute("titleType"); if (str != null) _titleType = FieldTypes.ParseProgressTitleType(str); else _titleType = ProgressTitleType.Percent; _reverse = xml.GetAttributeBool("reverse", false); _titleObject = GetChild("title") as GTextField; _barObjectH = GetChild("bar"); _barObjectV = GetChild("bar_v"); _aniObject = GetChild("ani") as GMovieClip; if (_barObjectH != null) { _barMaxWidth = _barObjectH.width; _barMaxWidthDelta = this.width - _barMaxWidth; _barStartX = _barObjectH.x; } if (_barObjectV != null) { _barMaxHeight = _barObjectV.height; _barMaxHeightDelta = this.height - _barMaxHeight; _barStartY = _barObjectV.y; } }
public override void ConstructFromXML(XML cxml) { base.ConstructFromXML(cxml); XML xml = cxml.GetNode("ScrollBar"); if (xml != null) _fixedGripSize = xml.GetAttributeBool("fixedGripSize"); _grip = GetChild("grip"); if (_grip == null) { Debug.LogWarning("FairyGUI: " + this.resourceURL + " should define grip"); return; } _bar = GetChild("bar"); if (_bar == null) { Debug.LogWarning("FairyGUI: " + this.resourceURL + " should define bar"); return; } _arrowButton1 = GetChild("arrow1"); _arrowButton2 = GetChild("arrow2"); _grip.onTouchBegin.Add(__gripTouchBegin); _grip.onTouchEnd.Add(__gripTouchEnd); this.onTouchBegin.Add(__touchBegin); if (_arrowButton1 != null) _arrowButton1.onTouchBegin.Add(__arrowButton1Click); if (_arrowButton2 != null) _arrowButton2.onTouchBegin.Add(__arrowButton2Click); }
void LoadPackage() { string[] arr = null; string str; str = LoadString("sprites.bytes"); arr = str.Split(sep1); int cnt = arr.Length; for (int i = 1; i < cnt; i++) { str = arr[i]; if (str.Length == 0) continue; string[] arr2 = str.Split(sep2); AtlasSprite sprite = new AtlasSprite(); string itemId = arr2[0]; int binIndex = int.Parse(arr2[1]); if (binIndex >= 0) sprite.atlas = "atlas" + binIndex; else { int pos = itemId.IndexOf("_"); if (pos == -1) sprite.atlas = "atlas_" + itemId; else sprite.atlas = "atlas_" + itemId.Substring(0, pos); } sprite.rect.x = int.Parse(arr2[2]); sprite.rect.y = int.Parse(arr2[3]); sprite.rect.width = int.Parse(arr2[4]); sprite.rect.height = int.Parse(arr2[5]); sprite.rotated = arr2[6] == "1"; _sprites[itemId] = sprite; } str = GetDesc("package.xml"); XML xml = new XML(str); id = xml.GetAttribute("id"); name = xml.GetAttribute("name"); XML rxml = xml.GetNode("resources"); if (rxml == null) throw new Exception("Invalid package xml"); XMLList resources = rxml.Elements(); _itemsById = new Dictionary<string, PackageItem>(); _itemsByName = new Dictionary<string, PackageItem>(); ; PackageItem pi; foreach (XML cxml in resources) { pi = new PackageItem(); pi.type = FieldTypes.ParsePackageItemType(cxml.name); pi.id = cxml.GetAttribute("id"); pi.name = cxml.GetAttribute("name"); pi.file = cxml.GetAttribute("file"); str = cxml.GetAttribute("size"); if (str != null) { arr = str.Split(sep0); pi.width = int.Parse(arr[0]); pi.height = int.Parse(arr[1]); } switch (pi.type) { case PackageItemType.Image: { string scale = cxml.GetAttribute("scale"); if (scale == "9grid") { arr = cxml.GetAttributeArray("scale9grid"); if (arr != null) { Rect rect = new Rect(); rect.x = int.Parse(arr[0]); rect.y = int.Parse(arr[1]); rect.width = int.Parse(arr[2]); rect.height = int.Parse(arr[3]); pi.scale9Grid = rect; } } else if (scale == "tile") pi.scaleByTile = true; break; } } pi.owner = this; _items.Add(pi); _itemsById[pi.id] = pi; if (pi.name != null) _itemsByName[pi.name] = pi; } cnt = _items.Count; for (int i = 0; i < cnt; i++) { pi = _items[i]; if (pi.type == PackageItemType.Font) { pi.Load(); FontManager.RegisterFont(pi.bitmapFont, null); } else GetItemAsset(pi); } if (_resBundle != null) { _resBundle.Unload(false); _resBundle = null; } }
public override void Setup_AfterAdd(XML cxml) { base.Setup_AfterAdd(cxml); XML xml = cxml.GetNode("ProgressBar"); if (xml == null) return; _value = xml.GetAttributeInt("value"); _max = xml.GetAttributeInt("max"); if (!this.underConstruct) Update(); }
public override void ConstructFromXML(XML cxml) { base.ConstructFromXML(cxml); XML xml = cxml.GetNode("ComboBox"); string str; _buttonController = GetController("button"); _titleObject = GetChild("title") as GTextField; str = xml.GetAttribute("dropdown"); if (str != null && str.Length > 0) { dropdown = UIPackage.CreateObjectFromURL(str) as GComponent; if (dropdown == null) { Debug.LogWarning("FairyGUI: " + this.resourceURL + " should be a component."); return; } _list = dropdown.GetChild("list") as GList; if (_list == null) { Debug.LogWarning("FairyGUI: " + this.resourceURL + ": should container a list component named list."); return; } _list.onClickItem.Add(__clickItem); _list.AddRelation(dropdown, RelationType.Width); _list.RemoveRelation(dropdown, RelationType.Height); dropdown.AddRelation(_list, RelationType.Height); dropdown.RemoveRelation(_list, RelationType.Width); } displayObject.onRollOver.Add(__rollover); displayObject.onRollOut.Add(__rollout); displayObject.onTouchBegin.Add(__touchBegin); displayObject.onTouchEnd.Add(__touchEnd); }
public override void ConstructFromXML(XML cxml) { base.ConstructFromXML(cxml); XML xml = cxml.GetNode("Button"); string str; str = xml.GetAttribute("mode"); if (str != null) _mode = FieldTypes.ParseButtonMode(str); else _mode = ButtonMode.Common; str = xml.GetAttribute("sound"); if (str != null) sound = UIPackage.GetItemAssetByURL(str) as AudioClip; str = xml.GetAttribute("volume"); if (str != null) soundVolumeScale = float.Parse(str) / 100f; str = xml.GetAttribute("downEffect"); if (str != null) { _downEffect = str == "dark" ? 1 : (str == "scale" ? 2 : 0); _downEffectValue = xml.GetAttributeFloat("downEffectValue"); } _buttonController = GetController("button"); _titleObject = GetChild("title"); _iconObject = GetChild("icon"); if (_mode == ButtonMode.Common) SetState(UP); displayObject.onRollOver.Add(__rollover); displayObject.onRollOut.Add(__rollout); displayObject.onTouchBegin.Add(__touchBegin); displayObject.onTouchEnd.Add(__touchEnd); displayObject.onRemovedFromStage.Add(__removedFromStage); displayObject.onClick.Add(__click); }
void LoadPackage() { string[] arr = null; string str; str = LoadString("sprites.bytes"); if (str == null) { Debug.LogError("FairyGUI: cannot load package from " + _assetNamePrefix); return; } arr = str.Split(sep1); int cnt = arr.Length; for (int i = 1; i < cnt; i++) { str = arr[i]; if (str.Length == 0) continue; string[] arr2 = str.Split(sep2); AtlasSprite sprite = new AtlasSprite(); string itemId = arr2[0]; int binIndex = int.Parse(arr2[1]); if (binIndex >= 0) sprite.atlas = "atlas" + binIndex; else { int pos = itemId.IndexOf("_"); if (pos == -1) sprite.atlas = "atlas_" + itemId; else sprite.atlas = "atlas_" + itemId.Substring(0, pos); } sprite.rect.x = int.Parse(arr2[2]); sprite.rect.y = int.Parse(arr2[3]); sprite.rect.width = int.Parse(arr2[4]); sprite.rect.height = int.Parse(arr2[5]); sprite.rotated = arr2[6] == "1"; _sprites[itemId] = sprite; } byte[] hittestData = LoadBinary("hittest.bytes"); if (hittestData != null) { ByteBuffer ba = new ByteBuffer(hittestData); while (ba.bytesAvailable) { PixelHitTestData pht = new PixelHitTestData(); _hitTestDatas[ba.ReadString()] = pht; pht.Load(ba); } } str = _descPack["package.xml"]; XML xml = new XML(str); id = xml.GetAttribute("id"); name = xml.GetAttribute("name"); XML rxml = xml.GetNode("resources"); if (rxml == null) throw new Exception("Invalid package xml"); XMLList resources = rxml.Elements(); _itemsById = new Dictionary<string, PackageItem>(); _itemsByName = new Dictionary<string, PackageItem>(); PackageItem pi; foreach (XML cxml in resources) { pi = new PackageItem(); pi.owner = this; pi.type = FieldTypes.ParsePackageItemType(cxml.name); pi.id = cxml.GetAttribute("id"); pi.name = cxml.GetAttribute("name"); pi.exported = cxml.GetAttributeBool("exported"); pi.file = cxml.GetAttribute("file"); str = cxml.GetAttribute("size"); if (str != null) { arr = str.Split(sep0); pi.width = int.Parse(arr[0]); pi.height = int.Parse(arr[1]); } switch (pi.type) { case PackageItemType.Image: { string scale = cxml.GetAttribute("scale"); if (scale == "9grid") { arr = cxml.GetAttributeArray("scale9grid"); if (arr != null) { Rect rect = new Rect(); rect.x = int.Parse(arr[0]); rect.y = int.Parse(arr[1]); rect.width = int.Parse(arr[2]); rect.height = int.Parse(arr[3]); pi.scale9Grid = rect; } } else if (scale == "tile") pi.scaleByTile = true; break; } case PackageItemType.Font: { pi.bitmapFont = new BitmapFont(pi); FontManager.RegisterFont(pi.bitmapFont, null); break; } } _items.Add(pi); _itemsById[pi.id] = pi; if (pi.name != null) _itemsByName[pi.name] = pi; } bool preloadAll = Application.isPlaying; if (preloadAll) { cnt = _items.Count; for (int i = 0; i < cnt; i++) GetItemAsset(_items[i]); _descPack = null; _sprites = null; } else _items.Sort(ComparePackageItem); if (_resBundle != null) { _resBundle.Unload(false); _resBundle = null; } }
public override void Setup_AfterAdd(XML cxml) { base.Setup_AfterAdd(cxml); if (_downEffect == 2) this.SetPivot(0.5f, 0.5f); XML xml = cxml.GetNode("Button"); if (xml == null) return; string str; str = xml.GetAttribute("title"); if (str != null) this.title = str; str = xml.GetAttribute("icon"); if (str != null) this.icon = str; str = xml.GetAttribute("selectedTitle"); if (str != null) this.selectedTitle = str; str = xml.GetAttribute("selectedIcon"); if (str != null) this.selectedIcon = str; str = xml.GetAttribute("titleColor"); if (str != null) this.titleColor = ToolSet.ConvertFromHtmlColor(str); str = xml.GetAttribute("controller"); if (str != null) _relatedController = parent.GetController(str); pageOption.id = xml.GetAttribute("page"); this.selected = xml.GetAttributeBool("checked", false); str = xml.GetAttribute("sound"); if (str != null) sound = UIPackage.GetItemAssetByURL(str) as AudioClip; str = xml.GetAttribute("volume"); if (str != null) soundVolumeScale = float.Parse(str) / 100f; }
void LoadMovieClip(PackageItem item) { string str = _descPack[item.id + ".xml"]; XML xml = new XML(str); string[] arr = null; str = xml.GetAttribute("interval"); if (str != null) item.interval = float.Parse(str) / 1000f; item.swing = xml.GetAttributeBool("swing", false); str = xml.GetAttribute("repeatDelay"); if (str != null) item.repeatDelay = float.Parse(str) / 1000f; int frameCount = xml.GetAttributeInt("frameCount"); item.frames = new MovieClip.Frame[frameCount]; XMLList frameNodes = xml.GetNode("frames").Elements(); int i = 0; foreach (XML frameNode in frameNodes) { MovieClip.Frame frame = new MovieClip.Frame(); arr = frameNode.GetAttributeArray("rect"); frame.rect = new Rect(int.Parse(arr[0]), int.Parse(arr[1]), int.Parse(arr[2]), int.Parse(arr[3])); str = frameNode.GetAttribute("addDelay"); if (str != null) frame.addDelay = float.Parse(str) / 1000f; AtlasSprite sprite; if (_sprites.TryGetValue(item.id + "_" + i, out sprite)) { PackageItem atlasItem = _itemsById[sprite.atlas]; if (atlasItem != null) { if (item.texture == null) item.texture = (NTexture)GetItemAsset(atlasItem); frame.uvRect = new Rect(sprite.rect.x / item.texture.width * item.texture.uvRect.width, 1 - sprite.rect.yMax * item.texture.uvRect.height / item.texture.height, sprite.rect.width * item.texture.uvRect.width / item.texture.width, sprite.rect.height * item.texture.uvRect.height / item.texture.height); } } item.frames[i] = frame; i++; } }
public override void Setup_AfterAdd(XML cxml) { base.Setup_AfterAdd(cxml); XML xml = cxml.GetNode("Label"); if (xml == null) return; string str; str = xml.GetAttribute("title"); if (str != null) this.title = str; str = xml.GetAttribute("icon"); if (str != null) this.icon = str; str = xml.GetAttribute("titleColor"); if (str != null) this.titleColor = ToolSet.ConvertFromHtmlColor(str); if (_titleObject is GTextInput) { GTextInput input = ((GTextInput)_titleObject); str = xml.GetAttribute("prompt"); if (str != null) input.promptText = str; str = xml.GetAttribute("restrict"); if (str != null) input.restrict = str; input.maxLength = xml.GetAttributeInt("maxLength", input.maxLength); input.keyboardType = xml.GetAttributeInt("keyboardType", input.keyboardType); input.displayAsPassword = xml.GetAttributeBool("password", input.displayAsPassword); } }