| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311 | 
							- using System;
 
- using UnityEngine;
 
- using FairyGUI.Utils;
 
- namespace FairyGUI
 
- {
 
-     /// <summary>
 
-     /// GProgressBar class.
 
-     /// </summary>
 
-     public class GProgressBar : GComponent
 
-     {
 
-         double _min;
 
-         double _max;
 
-         double _value;
 
-         ProgressTitleType _titleType;
 
-         bool _reverse;
 
-         GObject _titleObject;
 
-         GMovieClip _aniObject;
 
-         GObject _barObjectH;
 
-         GObject _barObjectV;
 
-         float _barMaxWidth;
 
-         float _barMaxHeight;
 
-         float _barMaxWidthDelta;
 
-         float _barMaxHeightDelta;
 
-         float _barStartX;
 
-         float _barStartY;
 
-         public GProgressBar()
 
-         {
 
-             _value = 50;
 
-             _max = 100;
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         public ProgressTitleType titleType
 
-         {
 
-             get
 
-             {
 
-                 return _titleType;
 
-             }
 
-             set
 
-             {
 
-                 if (_titleType != value)
 
-                 {
 
-                     _titleType = value;
 
-                     Update(_value);
 
-                 }
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         public double min
 
-         {
 
-             get
 
-             {
 
-                 return _min;
 
-             }
 
-             set
 
-             {
 
-                 if (_min != value)
 
-                 {
 
-                     _min = value;
 
-                     Update(_value);
 
-                 }
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         public double max
 
-         {
 
-             get
 
-             {
 
-                 return _max;
 
-             }
 
-             set
 
-             {
 
-                 if (_max != value)
 
-                 {
 
-                     _max = value;
 
-                     Update(_value);
 
-                 }
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         public double value
 
-         {
 
-             get
 
-             {
 
-                 return _value;
 
-             }
 
-             set
 
-             {
 
-                 if (_value != value)
 
-                 {
 
-                     GTween.Kill(this, TweenPropType.Progress, false);
 
-                     _value = value;
 
-                     Update(_value);
 
-                 }
 
-             }
 
-         }
 
-         public bool reverse
 
-         {
 
-             get { return _reverse; }
 
-             set { _reverse = value; }
 
-         }
 
-         /// <summary>
 
-         /// 动态改变进度值。
 
-         /// </summary>
 
-         /// <param name="value"></param>
 
-         /// <param name="duration"></param>
 
-         public GTweener TweenValue(double value, float duration)
 
-         {
 
-             double oldValule;
 
-             GTweener twener = GTween.GetTween(this, TweenPropType.Progress);
 
-             if (twener != null)
 
-             {
 
-                 oldValule = twener.value.d;
 
-                 twener.Kill(false);
 
-             }
 
-             else
 
-                 oldValule = _value;
 
-             _value = value;
 
-             return GTween.ToDouble(oldValule, _value, duration)
 
-                 .SetEase(EaseType.Linear)
 
-                 .SetTarget(this, TweenPropType.Progress);
 
-         }
 
-         /// <summary>
 
-         /// 
 
-         /// </summary>
 
-         /// <param name="newValue"></param>
 
-         public void Update(double newValue)
 
-         {
 
-             float percent = Mathf.Clamp01((float)((newValue - _min) / (_max - _min)));
 
-             if (_titleObject != null)
 
-             {
 
-                 switch (_titleType)
 
-                 {
 
-                     case ProgressTitleType.Percent:
 
-                         if (RTLSupport.BaseDirection == RTLSupport.DirectionType.RTL)
 
-                             _titleObject.text = "%" + Mathf.FloorToInt(percent * 100);
 
-                         else
 
-                             _titleObject.text = Mathf.FloorToInt(percent * 100) + "%";
 
-                         break;
 
-                     case ProgressTitleType.ValueAndMax:
 
-                         if (RTLSupport.BaseDirection == RTLSupport.DirectionType.RTL)
 
-                             _titleObject.text = Math.Round(max) + "/" + Math.Round(newValue);
 
-                         else
 
-                             _titleObject.text = Math.Round(newValue) + "/" + Math.Round(max);
 
-                         break;
 
-                     case ProgressTitleType.Value:
 
-                         _titleObject.text = "" + Math.Round(newValue);
 
-                         break;
 
-                     case ProgressTitleType.Max:
 
-                         _titleObject.text = "" + Math.Round(_max);
 
-                         break;
 
-                 }
 
-             }
 
-             float fullWidth = this.width - _barMaxWidthDelta;
 
-             float fullHeight = this.height - _barMaxHeightDelta;
 
-             if (!_reverse)
 
-             {
 
-                 if (_barObjectH != null)
 
-                 {
 
-                     if (!SetFillAmount(_barObjectH, percent))
 
-                         _barObjectH.width = Mathf.RoundToInt(fullWidth * percent);
 
-                 }
 
-                 if (_barObjectV != null)
 
-                 {
 
-                     if (!SetFillAmount(_barObjectV, percent))
 
-                         _barObjectV.height = Mathf.RoundToInt(fullHeight * percent);
 
-                 }
 
-             }
 
-             else
 
-             {
 
-                 if (_barObjectH != null)
 
-                 {
 
-                     if (!SetFillAmount(_barObjectH, 1 - percent))
 
-                     {
 
-                         _barObjectH.width = Mathf.RoundToInt(fullWidth * percent);
 
-                         _barObjectH.x = _barStartX + (fullWidth - _barObjectH.width);
 
-                     }
 
-                 }
 
-                 if (_barObjectV != null)
 
-                 {
 
-                     if (!SetFillAmount(_barObjectV, 1 - percent))
 
-                     {
 
-                         _barObjectV.height = Mathf.RoundToInt(fullHeight * percent);
 
-                         _barObjectV.y = _barStartY + (fullHeight - _barObjectV.height);
 
-                     }
 
-                 }
 
-             }
 
-             if (_aniObject != null)
 
-                 _aniObject.frame = Mathf.RoundToInt(percent * 100);
 
-             InvalidateBatchingState(true);
 
-         }
 
-         bool SetFillAmount(GObject bar, float amount)
 
-         {
 
-             if ((bar is GImage) && ((GImage)bar).fillMethod != FillMethod.None)
 
-                 ((GImage)bar).fillAmount = amount;
 
-             else if ((bar is GLoader) && ((GLoader)bar).fillMethod != FillMethod.None)
 
-                 ((GLoader)bar).fillAmount = amount;
 
-             else
 
-                 return false;
 
-             return true;
 
-         }
 
-         override protected void ConstructExtension(ByteBuffer buffer)
 
-         {
 
-             buffer.Seek(0, 6);
 
-             _titleType = (ProgressTitleType)buffer.ReadByte();
 
-             _reverse = buffer.ReadBool();
 
-             _titleObject = GetChild("title");
 
-             _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;
 
-             }
 
-         }
 
-         override public void Setup_AfterAdd(ByteBuffer buffer, int beginPos)
 
-         {
 
-             base.Setup_AfterAdd(buffer, beginPos);
 
-             if (!buffer.Seek(beginPos, 6))
 
-             {
 
-                 Update(_value);
 
-                 return;
 
-             }
 
-             if ((ObjectType)buffer.ReadByte() != packageItem.objectType)
 
-             {
 
-                 Update(_value);
 
-                 return;
 
-             }
 
-             _value = buffer.ReadInt();
 
-             _max = buffer.ReadInt();
 
-             if (buffer.version >= 2)
 
-                 _min = buffer.ReadInt();
 
-             if (buffer.version >= 5)
 
-             {
 
-                 string sound = buffer.ReadS();
 
-                 if (!string.IsNullOrEmpty(sound))
 
-                 {
 
-                     float volumeScale = buffer.ReadFloat();
 
-                     displayObject.onClick.Add(() =>
 
-                     {
 
-                         NAudioClip audioClip = UIPackage.GetItemAssetByURL(sound) as NAudioClip;
 
-                         if (audioClip != null && audioClip.nativeClip != null)
 
-                             Stage.inst.PlayOneShotSound(audioClip.nativeClip, volumeScale);
 
-                     });
 
-                 }
 
-                 else
 
-                     buffer.Skip(4);
 
-             }
 
-             Update(_value);
 
-         }
 
-         override protected void HandleSizeChanged()
 
-         {
 
-             base.HandleSizeChanged();
 
-             if (_barObjectH != null)
 
-                 _barMaxWidth = this.width - _barMaxWidthDelta;
 
-             if (_barObjectV != null)
 
-                 _barMaxHeight = this.height - _barMaxHeightDelta;
 
-             if (!this.underConstruct)
 
-                 Update(_value);
 
-         }
 
-     }
 
- }
 
 
  |