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++; } }
void LoadMovieClip(PackageItem item) { ByteBuffer buffer = item.rawData; buffer.Seek(0, 0); item.interval = buffer.ReadInt() / 1000f; item.swing = buffer.ReadBool(); item.repeatDelay = buffer.ReadInt() / 1000f; buffer.Seek(0, 1); int frameCount = buffer.ReadShort(); item.frames = new MovieClip.Frame[frameCount]; string spriteId; MovieClip.Frame frame; AtlasSprite sprite; for (int i = 0; i < frameCount; i++) { int nextPos = buffer.ReadShort(); nextPos += buffer.position; frame = new MovieClip.Frame(); frame.rect.x = buffer.ReadInt(); frame.rect.y = buffer.ReadInt(); frame.rect.width = buffer.ReadInt(); frame.rect.height = buffer.ReadInt(); frame.addDelay = buffer.ReadInt() / 1000f; spriteId = buffer.ReadS(); if (spriteId != null && _sprites.TryGetValue(spriteId, out sprite)) { if (item.texture == null) { item.texture = (NTexture)GetItemAsset(sprite.atlas); } 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); frame.rotated = sprite.rotated; if (frame.rotated) { float tmp = frame.uvRect.width; frame.uvRect.width = frame.uvRect.height; frame.uvRect.height = tmp; } } item.frames[i] = frame; buffer.position = nextPos; } }
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++; } }
static public int constructor(IntPtr l) { try { FairyGUI.MovieClip.Frame o; o = new FairyGUI.MovieClip.Frame(); pushValue(l, true); pushValue(l, o); return(2); } catch (Exception e) { return(error(l, e)); } }
void LoadMovieClip(PackageItem item) { ByteBuffer buffer = item.rawData; buffer.Seek(0, 0); item.interval = buffer.ReadInt() / 1000f; item.swing = buffer.ReadBool(); item.repeatDelay = buffer.ReadInt() / 1000f; buffer.Seek(0, 1); int frameCount = buffer.ReadShort(); item.frames = new MovieClip.Frame[frameCount]; string spriteId; MovieClip.Frame frame; AtlasSprite sprite; Rect frameRect = new Rect(); for (int i = 0; i < frameCount; i++) { int nextPos = buffer.ReadShort(); nextPos += buffer.position; frame = new MovieClip.Frame(); frameRect.x = buffer.ReadInt(); frameRect.y = buffer.ReadInt(); frameRect.width = buffer.ReadInt(); frameRect.height = buffer.ReadInt(); frame.addDelay = buffer.ReadInt() / 1000f; spriteId = buffer.ReadS(); if (spriteId != null && _sprites.TryGetValue(spriteId, out sprite)) { frame.texture = new NTexture((NTexture)GetItemAsset(sprite.atlas), sprite.rect, sprite.rotated, new Vector2(item.width, item.height), frameRect.position); } item.frames[i] = frame; buffer.position = nextPos; } }
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++; } }