Exemple #1
0
		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++;
			}
		}
Exemple #2
0
        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));
     }
 }
Exemple #5
0
        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;
            }
        }
Exemple #6
0
        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++;
            }
        }
Exemple #7
0
        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++;
            }
        }