| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561 | 
							- using UnityEngine;
 
- using FairyGUI.Utils;
 
- namespace FairyGUI
 
- {
 
-     /// <summary>
 
-     /// 
 
-     /// </summary>
 
-     public partial class GLoader3D : GObject, IAnimationGear, IColorGear
 
-     {
 
-         string _url;
 
-         AlignType _align;
 
-         VertAlignType _verticalAlign;
 
-         bool _autoSize;
 
-         FillType _fill;
 
-         bool _shrinkOnly;
 
-         string _animationName;
 
-         string _skinName;
 
-         bool _playing;
 
-         int _frame;
 
-         bool _loop;
 
-         bool _updatingLayout;
 
-         Color _color;
 
-         protected PackageItem _contentItem;
 
-         protected GoWrapper _content;
 
-         public GLoader3D()
 
-         {
 
-             _url = string.Empty;
 
-             _align = AlignType.Left;
 
-             _verticalAlign = VertAlignType.Top;
 
-             _playing = true;
 
-             _color = Color.white;
 
-         }
 
-         override protected void CreateDisplayObject()
 
-         {
 
-             displayObject = new Container("GLoader3D");
 
-             displayObject.gOwner = this;
 
-             _content = new GoWrapper();
 
-             _content.onUpdate += OnUpdateContent;
 
-             ((Container)displayObject).AddChild(_content);
 
-             ((Container)displayObject).opaque = true;
 
-         }
 
-         override public void Dispose()
 
-         {
 
-             _content.Dispose();
 
-             base.Dispose();
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         public string url
 
-         {
 
-             get { return _url; }
 
-             set
 
-             {
 
-                 if (_url == value)
 
-                     return;
 
-                 ClearContent();
 
-                 _url = value;
 
-                 LoadContent();
 
-                 UpdateGear(7);
 
-             }
 
-         }
 
-         override public string icon
 
-         {
 
-             get { return _url; }
 
-             set { this.url = value; }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         public AlignType align
 
-         {
 
-             get { return _align; }
 
-             set
 
-             {
 
-                 if (_align != value)
 
-                 {
 
-                     _align = value;
 
-                     UpdateLayout();
 
-                 }
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         public VertAlignType verticalAlign
 
-         {
 
-             get { return _verticalAlign; }
 
-             set
 
-             {
 
-                 if (_verticalAlign != value)
 
-                 {
 
-                     _verticalAlign = value;
 
-                     UpdateLayout();
 
-                 }
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         public FillType fill
 
-         {
 
-             get { return _fill; }
 
-             set
 
-             {
 
-                 if (_fill != value)
 
-                 {
 
-                     _fill = value;
 
-                     UpdateLayout();
 
-                 }
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         public bool shrinkOnly
 
-         {
 
-             get { return _shrinkOnly; }
 
-             set
 
-             {
 
-                 if (_shrinkOnly != value)
 
-                 {
 
-                     _shrinkOnly = value;
 
-                     UpdateLayout();
 
-                 }
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         public bool autoSize
 
-         {
 
-             get { return _autoSize; }
 
-             set
 
-             {
 
-                 if (_autoSize != value)
 
-                 {
 
-                     _autoSize = value;
 
-                     UpdateLayout();
 
-                 }
 
-             }
 
-         }
 
-         public bool playing
 
-         {
 
-             get { return _playing; }
 
-             set
 
-             {
 
-                 if (_playing != value)
 
-                 {
 
-                     _playing = value;
 
-                     OnChange("playing");
 
-                     UpdateGear(5);
 
-                 }
 
-             }
 
-         }
 
-         public int frame
 
-         {
 
-             get { return _frame; }
 
-             set
 
-             {
 
-                 if (_frame != value)
 
-                 {
 
-                     _frame = value;
 
-                     OnChange("frame");
 
-                     UpdateGear(5);
 
-                 }
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// Not implemented
 
-         /// </summary>
 
-         public float timeScale
 
-         {
 
-             get;
 
-             set;
 
-         }
 
-         /// <summary>
 
-         /// Not implemented
 
-         /// </summary>
 
-         public bool ignoreEngineTimeScale
 
-         {
 
-             get;
 
-             set;
 
-         }
 
-         /// <summary>
 
-         /// Not implemented
 
-         /// </summary>
 
-         /// <param name="time"></param>
 
-         public void Advance(float time)
 
-         {
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         public bool loop
 
-         {
 
-             get { return _loop; }
 
-             set
 
-             {
 
-                 if (_loop != value)
 
-                 {
 
-                     _loop = value;
 
-                     OnChange("loop");
 
-                 }
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         /// <value></value>
 
-         public string animationName
 
-         {
 
-             get { return _animationName; }
 
-             set
 
-             {
 
-                 _animationName = value;
 
-                 OnChange("animationName");
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         /// <value></value>
 
-         public string skinName
 
-         {
 
-             get { return _skinName; }
 
-             set
 
-             {
 
-                 _skinName = value;
 
-                 OnChange("skinName");
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         public Material material
 
-         {
 
-             get { return _content.material; }
 
-             set { _content.material = value; }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         public string shader
 
-         {
 
-             get { return _content.shader; }
 
-             set { _content.shader = value; }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         public Color color
 
-         {
 
-             get { return _color; }
 
-             set
 
-             {
 
-                 if (_color != value)
 
-                 {
 
-                     _color = value;
 
-                     UpdateGear(4);
 
-                     OnChange("color");
 
-                 }
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         public GameObject wrapTarget
 
-         {
 
-             get { return _content.wrapTarget; }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         /// <param name="gameObject"></param>
 
-         /// <param name="cloneMaterial"></param>
 
-         /// <param name="width"></param>
 
-         /// <param name="height"></param>
 
-         public void SetWrapTarget(GameObject gameObject, bool cloneMaterial, int width, int height)
 
-         {
 
-             _content.SetWrapTarget(gameObject, cloneMaterial);
 
-             _content.SetSize(width, height);
 
-             sourceWidth = width;
 
-             sourceHeight = height;
 
-             UpdateLayout();
 
-         }
 
-         override public IFilter filter
 
-         {
 
-             get { return _content.filter; }
 
-             set { _content.filter = value; }
 
-         }
 
-         override public BlendMode blendMode
 
-         {
 
-             get { return _content.blendMode; }
 
-             set { _content.blendMode = value; }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         protected void LoadContent()
 
-         {
 
-             ClearContent();
 
-             if (string.IsNullOrEmpty(_url))
 
-                 return;
 
-             _contentItem = UIPackage.GetItemByURL(_url);
 
-             if (_contentItem != null)
 
-             {
 
-                 _contentItem = _contentItem.getBranch();
 
-                 _contentItem = _contentItem.getHighResolution();
 
-                 _contentItem.Load();
 
-                 if (_contentItem.type == PackageItemType.Spine)
 
-                 {
 
- #if FAIRYGUI_SPINE
 
-                     LoadSpine();
 
- #endif
 
-                 }
 
-                 else if (_contentItem.type == PackageItemType.DragoneBones)
 
-                 {
 
- #if FAIRYGUI_DRAGONBONES
 
-                     LoadDragonBones();
 
- #endif
 
-                 }
 
-             }
 
-             else
 
-                 LoadExternal();
 
-         }
 
-         virtual protected void OnChange(string propertyName)
 
-         {
 
-             if (_contentItem == null)
 
-                 return;
 
-             if (_contentItem.type == PackageItemType.Spine)
 
-             {
 
- #if FAIRYGUI_SPINE
 
-                 OnChangeSpine(propertyName);
 
- #endif
 
-             }
 
-             else if (_contentItem.type == PackageItemType.DragoneBones)
 
-             {
 
- #if FAIRYGUI_DRAGONBONES
 
-                 OnChangeDragonBones(propertyName);
 
- #endif
 
-             }
 
-         }
 
-         virtual protected void LoadExternal()
 
-         {
 
-         }
 
-         virtual protected void FreeExternal()
 
-         {
 
-             GameObject.DestroyImmediate(_content.wrapTarget);
 
-         }
 
-         protected void UpdateLayout()
 
-         {
 
-             float contentWidth = sourceWidth;
 
-             float contentHeight = sourceHeight;
 
-             if (_autoSize)
 
-             {
 
-                 _updatingLayout = true;
 
-                 if (contentWidth == 0)
 
-                     contentWidth = 50;
 
-                 if (contentHeight == 0)
 
-                     contentHeight = 30;
 
-                 SetSize(contentWidth, contentHeight);
 
-                 _updatingLayout = false;
 
-                 if (_width == contentWidth && _height == contentHeight)
 
-                 {
 
-                     _content.SetXY(0, 0);
 
-                     _content.SetScale(1, 1);
 
-                     InvalidateBatchingState();
 
-                     return;
 
-                 }
 
-                 //如果不相等,可能是由于大小限制造成的,要后续处理
 
-             }
 
-             float sx = 1, sy = 1;
 
-             if (_fill != FillType.None)
 
-             {
 
-                 sx = this.width / sourceWidth;
 
-                 sy = this.height / sourceHeight;
 
-                 if (sx != 1 || sy != 1)
 
-                 {
 
-                     if (_fill == FillType.ScaleMatchHeight)
 
-                         sx = sy;
 
-                     else if (_fill == FillType.ScaleMatchWidth)
 
-                         sy = sx;
 
-                     else if (_fill == FillType.Scale)
 
-                     {
 
-                         if (sx > sy)
 
-                             sx = sy;
 
-                         else
 
-                             sy = sx;
 
-                     }
 
-                     else if (_fill == FillType.ScaleNoBorder)
 
-                     {
 
-                         if (sx > sy)
 
-                             sy = sx;
 
-                         else
 
-                             sx = sy;
 
-                     }
 
-                     if (_shrinkOnly)
 
-                     {
 
-                         if (sx > 1)
 
-                             sx = 1;
 
-                         if (sy > 1)
 
-                             sy = 1;
 
-                     }
 
-                     contentWidth = sourceWidth * sx;
 
-                     contentHeight = sourceHeight * sy;
 
-                 }
 
-             }
 
-             _content.SetScale(sx, sy);
 
-             float nx;
 
-             float ny;
 
-             if (_align == AlignType.Center)
 
-                 nx = (this.width - contentWidth) / 2;
 
-             else if (_align == AlignType.Right)
 
-                 nx = this.width - contentWidth;
 
-             else
 
-                 nx = 0;
 
-             if (_verticalAlign == VertAlignType.Middle)
 
-                 ny = (this.height - contentHeight) / 2;
 
-             else if (_verticalAlign == VertAlignType.Bottom)
 
-                 ny = this.height - contentHeight;
 
-             else
 
-                 ny = 0;
 
-             _content.SetXY(nx, ny);
 
-             InvalidateBatchingState();
 
-         }
 
-         protected void ClearContent()
 
-         {
 
-             if (_content.wrapTarget != null)
 
-             {
 
-                 if (_contentItem != null)
 
-                 {
 
-                     if (_contentItem.type == PackageItemType.Spine)
 
-                     {
 
- #if FAIRYGUI_SPINE
 
-                         FreeSpine();
 
- #endif
 
-                     }
 
-                     else if (_contentItem.type == PackageItemType.DragoneBones)
 
-                     {
 
- #if FAIRYGUI_DRAGONBONES
 
-                         FreeDragonBones();
 
- #endif
 
-                     }
 
-                 }
 
-                 else
 
-                     FreeExternal();
 
-             }
 
-             _content.wrapTarget = null;
 
-             _contentItem = null;
 
-         }
 
-         protected void OnUpdateContent(UpdateContext context)
 
-         {
 
-             if (_contentItem == null)
 
-                 return;
 
-             if (_contentItem.type == PackageItemType.Spine)
 
-             {
 
- #if FAIRYGUI_SPINE
 
-                 OnUpdateSpine(context);
 
- #endif
 
-             }
 
-             else if (_contentItem.type == PackageItemType.DragoneBones)
 
-             {
 
- #if FAIRYGUI_DRAGONBONES
 
-                 OnUpdateDragonBones(context);
 
- #endif
 
-             }
 
-         }
 
-         override protected void HandleSizeChanged()
 
-         {
 
-             base.HandleSizeChanged();
 
-             if (!_updatingLayout)
 
-                 UpdateLayout();
 
-         }
 
-         override public void Setup_BeforeAdd(ByteBuffer buffer, int beginPos)
 
-         {
 
-             base.Setup_BeforeAdd(buffer, beginPos);
 
-             buffer.Seek(beginPos, 5);
 
-             _url = buffer.ReadS();
 
-             _align = (AlignType)buffer.ReadByte();
 
-             _verticalAlign = (VertAlignType)buffer.ReadByte();
 
-             _fill = (FillType)buffer.ReadByte();
 
-             _shrinkOnly = buffer.ReadBool();
 
-             _autoSize = buffer.ReadBool();
 
-             _animationName = buffer.ReadS();
 
-             _skinName = buffer.ReadS();
 
-             _playing = buffer.ReadBool();
 
-             _frame = buffer.ReadInt();
 
-             _loop = buffer.ReadBool();
 
-             if (buffer.ReadBool())
 
-                 this.color = buffer.ReadColor(); //color
 
-             if (!string.IsNullOrEmpty(_url))
 
-                 LoadContent();
 
-         }
 
-     }
 
- }
 
 
  |