|  |  | using UnityEngine;
 | 
						
						
						
							|  |  | using System.Collections.Generic;
 | 
						
						
						
							|  |  | using FairyGUI;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | public class BasicsMain : MonoBehaviour
 | 
						
						
						
							|  |  | {
 | 
						
						
						
							|  |  |     private GComponent _mainView;
 | 
						
						
						
							|  |  |     private GObject _backBtn;
 | 
						
						
						
							|  |  |     private GComponent _demoContainer;
 | 
						
						
						
							|  |  |     private Controller _viewController;
 | 
						
						
						
							|  |  |     private Dictionary<string, GComponent> _demoObjects;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     public Gradient lineGradient;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     void Awake()
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  | #if (UNITY_5 || UNITY_5_3_OR_NEWER)
 | 
						
						
						
							|  |  |         //Use the font names directly
 | 
						
						
						
							|  |  |         UIConfig.defaultFont = "Microsoft YaHei";
 | 
						
						
						
							|  |  | #else
 | 
						
						
						
							|  |  |         //Need to put a ttf file into Resources folder. Here is the file name of the ttf file.
 | 
						
						
						
							|  |  |         UIConfig.defaultFont = "afont";
 | 
						
						
						
							|  |  | #endif
 | 
						
						
						
							|  |  |         UIPackage.AddPackage("UI/Basics");
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         UIConfig.verticalScrollBar = "ui://Basics/ScrollBar_VT";
 | 
						
						
						
							|  |  |         UIConfig.horizontalScrollBar = "ui://Basics/ScrollBar_HZ";
 | 
						
						
						
							|  |  |         UIConfig.popupMenu = "ui://Basics/PopupMenu";
 | 
						
						
						
							|  |  |         UIConfig.buttonSound = (NAudioClip)UIPackage.GetItemAsset("Basics", "click");
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     void Start()
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         Application.targetFrameRate = 60;
 | 
						
						
						
							|  |  |         Stage.inst.onKeyDown.Add(OnKeyDown);
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         _mainView = this.GetComponent<UIPanel>().ui;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         _backBtn = _mainView.GetChild("btn_Back");
 | 
						
						
						
							|  |  |         _backBtn.visible = false;
 | 
						
						
						
							|  |  |         _backBtn.onClick.Add(onClickBack);
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         _demoContainer = _mainView.GetChild("container").asCom;
 | 
						
						
						
							|  |  |         _viewController = _mainView.GetController("c1");
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         _demoObjects = new Dictionary<string, GComponent>();
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         int cnt = _mainView.numChildren;
 | 
						
						
						
							|  |  |         for (int i = 0; i < cnt; i++)
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             GObject obj = _mainView.GetChildAt(i);
 | 
						
						
						
							|  |  |             if (obj.group != null && obj.group.name == "btns")
 | 
						
						
						
							|  |  |                 obj.onClick.Add(runDemo);
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     private void runDemo(EventContext context)
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         string type = ((GObject)(context.sender)).name.Substring(4);
 | 
						
						
						
							|  |  |         GComponent obj;
 | 
						
						
						
							|  |  |         if (!_demoObjects.TryGetValue(type, out obj))
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             obj = UIPackage.CreateObject("Basics", "Demo_" + type).asCom;
 | 
						
						
						
							|  |  |             _demoObjects[type] = obj;
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         _demoContainer.RemoveChildren();
 | 
						
						
						
							|  |  |         _demoContainer.AddChild(obj);
 | 
						
						
						
							|  |  |         _viewController.selectedIndex = 1;
 | 
						
						
						
							|  |  |         _backBtn.visible = true;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         switch (type)
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             case "Graph":
 | 
						
						
						
							|  |  |                 PlayGraph();
 | 
						
						
						
							|  |  |                 break;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             case "Button":
 | 
						
						
						
							|  |  |                 PlayButton();
 | 
						
						
						
							|  |  |                 break;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             case "Text":
 | 
						
						
						
							|  |  |                 PlayText();
 | 
						
						
						
							|  |  |                 break;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             case "Grid":
 | 
						
						
						
							|  |  |                 PlayGrid();
 | 
						
						
						
							|  |  |                 break;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             case "Transition":
 | 
						
						
						
							|  |  |                 PlayTransition();
 | 
						
						
						
							|  |  |                 break;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             case "Window":
 | 
						
						
						
							|  |  |                 PlayWindow();
 | 
						
						
						
							|  |  |                 break;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             case "Popup":
 | 
						
						
						
							|  |  |                 PlayPopup();
 | 
						
						
						
							|  |  |                 break;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             case "Drag&Drop":
 | 
						
						
						
							|  |  |                 PlayDragDrop();
 | 
						
						
						
							|  |  |                 break;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             case "Depth":
 | 
						
						
						
							|  |  |                 PlayDepth();
 | 
						
						
						
							|  |  |                 break;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             case "ProgressBar":
 | 
						
						
						
							|  |  |                 PlayProgressBar();
 | 
						
						
						
							|  |  |                 break;
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     private void onClickBack()
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         _viewController.selectedIndex = 0;
 | 
						
						
						
							|  |  |         _backBtn.visible = false;
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     void OnKeyDown(EventContext context)
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         if (context.inputEvent.keyCode == KeyCode.Escape)
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             Application.Quit();
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //-----------------------------
 | 
						
						
						
							|  |  |     private void PlayGraph()
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         GComponent obj = _demoObjects["Graph"];
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         Shape shape;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         shape = obj.GetChild("pie").asGraph.shape;
 | 
						
						
						
							|  |  |         EllipseMesh ellipse = shape.graphics.GetMeshFactory<EllipseMesh>();
 | 
						
						
						
							|  |  |         ellipse.startDegree = 30;
 | 
						
						
						
							|  |  |         ellipse.endDegreee = 300;
 | 
						
						
						
							|  |  |         shape.graphics.SetMeshDirty();
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         shape = obj.GetChild("trapezoid").asGraph.shape;
 | 
						
						
						
							|  |  |         PolygonMesh trapezoid = shape.graphics.GetMeshFactory<PolygonMesh>();
 | 
						
						
						
							|  |  |         trapezoid.usePercentPositions = true;
 | 
						
						
						
							|  |  |         trapezoid.points.Clear();
 | 
						
						
						
							|  |  |         trapezoid.points.Add(new Vector2(0f, 1f));
 | 
						
						
						
							|  |  |         trapezoid.points.Add(new Vector2(0.3f, 0));
 | 
						
						
						
							|  |  |         trapezoid.points.Add(new Vector2(0.7f, 0));
 | 
						
						
						
							|  |  |         trapezoid.points.Add(new Vector2(1f, 1f));
 | 
						
						
						
							|  |  |         trapezoid.texcoords.Clear();
 | 
						
						
						
							|  |  |         trapezoid.texcoords.AddRange(VertexBuffer.NormalizedUV);
 | 
						
						
						
							|  |  |         shape.graphics.SetMeshDirty();
 | 
						
						
						
							|  |  |         shape.graphics.texture = (NTexture)UIPackage.GetItemAsset("Basics", "change");
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         shape = obj.GetChild("line").asGraph.shape;
 | 
						
						
						
							|  |  |         LineMesh line = shape.graphics.GetMeshFactory<LineMesh>();
 | 
						
						
						
							|  |  |         line.lineWidthCurve = AnimationCurve.Linear(0, 25, 1, 10);
 | 
						
						
						
							|  |  |         line.roundEdge = true;
 | 
						
						
						
							|  |  |         line.gradient = lineGradient;
 | 
						
						
						
							|  |  |         line.path.Create(new GPathPoint[] {
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(0, 120, 0)),
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(20, 120, 0)),
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(100, 100, 0)),
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(180, 30, 0)),
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(100, 0, 0)),
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(20, 30, 0)),
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(100, 100, 0)),
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(180, 120, 0)),
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(200, 120, 0)),
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  |         shape.graphics.SetMeshDirty();
 | 
						
						
						
							|  |  |         GTween.To(0, 1, 5).SetEase(EaseType.Linear).SetTarget(shape.graphics).OnUpdate((GTweener t) =>
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             ((NGraphics)t.target).GetMeshFactory<LineMesh>().fillEnd = t.value.x;
 | 
						
						
						
							|  |  |             ((NGraphics)t.target).SetMeshDirty();
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         shape = obj.GetChild("line2").asGraph.shape;
 | 
						
						
						
							|  |  |         LineMesh line2 = shape.graphics.GetMeshFactory<LineMesh>();
 | 
						
						
						
							|  |  |         line2.lineWidth = 3;
 | 
						
						
						
							|  |  |         line2.roundEdge = true;
 | 
						
						
						
							|  |  |         line2.path.Create(new GPathPoint[] {
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(0, 120, 0), GPathPoint.CurveType.Straight),
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(60, 30, 0), GPathPoint.CurveType.Straight),
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(80, 90, 0), GPathPoint.CurveType.Straight),
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(140, 30, 0), GPathPoint.CurveType.Straight),
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(160, 90, 0), GPathPoint.CurveType.Straight),
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(220, 30, 0), GPathPoint.CurveType.Straight)
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  |         shape.graphics.SetMeshDirty();
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         GObject image = obj.GetChild("line3");
 | 
						
						
						
							|  |  |         LineMesh line3 = image.displayObject.graphics.GetMeshFactory<LineMesh>();
 | 
						
						
						
							|  |  |         line3.lineWidth = 30;
 | 
						
						
						
							|  |  |         line3.roundEdge = false;
 | 
						
						
						
							|  |  |         line3.path.Create(new GPathPoint[] {
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(0, 30, 0), new Vector3(50, -30), new Vector3(150, -50)),
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(200, 30, 0), new Vector3(300, 130)),
 | 
						
						
						
							|  |  |             new GPathPoint(new Vector3(400, 30, 0))
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  |         image.displayObject.graphics.SetMeshDirty();
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //-----------------------------
 | 
						
						
						
							|  |  |     private void PlayButton()
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         GComponent obj = _demoObjects["Button"];
 | 
						
						
						
							|  |  |         obj.GetChild("n34").onClick.Add(() => { UnityEngine.Debug.Log("click button"); });
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //------------------------------
 | 
						
						
						
							|  |  |     private void PlayText()
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         GComponent obj = _demoObjects["Text"];
 | 
						
						
						
							|  |  |         obj.GetChild("n12").asRichTextField.onClickLink.Add((EventContext context) =>
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             GRichTextField t = context.sender as GRichTextField;
 | 
						
						
						
							|  |  |             t.text = "[img]ui://Basics/pet[/img][color=#FF0000]You click the link[/color]:" + context.data;
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  |         obj.GetChild("n25").onClick.Add(() =>
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             obj.GetChild("n24").text = obj.GetChild("n22").text;
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //------------------------------
 | 
						
						
						
							|  |  |     private void PlayGrid()
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         GComponent obj = _demoObjects["Grid"];
 | 
						
						
						
							|  |  |         GList list1 = obj.GetChild("list1").asList;
 | 
						
						
						
							|  |  |         list1.RemoveChildrenToPool();
 | 
						
						
						
							|  |  |         string[] testNames = System.Enum.GetNames(typeof(RuntimePlatform));
 | 
						
						
						
							|  |  |         Color[] testColor = new Color[] { Color.yellow, Color.red, Color.white, Color.cyan };
 | 
						
						
						
							|  |  |         int cnt = testNames.Length;
 | 
						
						
						
							|  |  |         for (int i = 0; i < cnt; i++)
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             GButton item = list1.AddItemFromPool().asButton;
 | 
						
						
						
							|  |  |             item.GetChild("t0").text = "" + (i + 1);
 | 
						
						
						
							|  |  |             item.GetChild("t1").text = testNames[i];
 | 
						
						
						
							|  |  |             item.GetChild("t2").asTextField.color = testColor[UnityEngine.Random.Range(0, 4)];
 | 
						
						
						
							|  |  |             item.GetChild("star").asProgress.value = (int)((float)UnityEngine.Random.Range(1, 4) / 3f * 100);
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         GList list2 = obj.GetChild("list2").asList;
 | 
						
						
						
							|  |  |         list2.RemoveChildrenToPool();
 | 
						
						
						
							|  |  |         for (int i = 0; i < cnt; i++)
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             GButton item = list2.AddItemFromPool().asButton;
 | 
						
						
						
							|  |  |             item.GetChild("cb").asButton.selected = false;
 | 
						
						
						
							|  |  |             item.GetChild("t1").text = testNames[i];
 | 
						
						
						
							|  |  |             item.GetChild("mc").asMovieClip.playing = i % 2 == 0;
 | 
						
						
						
							|  |  |             item.GetChild("t3").text = "" + UnityEngine.Random.Range(0, 10000);
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //------------------------------
 | 
						
						
						
							|  |  |     private void PlayTransition()
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         GComponent obj = _demoObjects["Transition"];
 | 
						
						
						
							|  |  |         obj.GetChild("n2").asCom.GetTransition("t0").Play(int.MaxValue, 0, null);
 | 
						
						
						
							|  |  |         obj.GetChild("n3").asCom.GetTransition("peng").Play(int.MaxValue, 0, null);
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         obj.onAddedToStage.Add(() =>
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             obj.GetChild("n2").asCom.GetTransition("t0").Stop();
 | 
						
						
						
							|  |  |             obj.GetChild("n3").asCom.GetTransition("peng").Stop();
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //------------------------------
 | 
						
						
						
							|  |  |     private Window _winA;
 | 
						
						
						
							|  |  |     private Window _winB;
 | 
						
						
						
							|  |  |     private void PlayWindow()
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         GComponent obj = _demoObjects["Window"];
 | 
						
						
						
							|  |  |         obj.GetChild("n0").onClick.Add(() =>
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             if (_winA == null)
 | 
						
						
						
							|  |  |                 _winA = new Window1();
 | 
						
						
						
							|  |  |             _winA.Show();
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         obj.GetChild("n1").onClick.Add(() =>
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             if (_winB == null)
 | 
						
						
						
							|  |  |                 _winB = new Window2();
 | 
						
						
						
							|  |  |             _winB.Show();
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //------------------------------
 | 
						
						
						
							|  |  |     private PopupMenu _pm;
 | 
						
						
						
							|  |  |     private GComponent _popupCom;
 | 
						
						
						
							|  |  |     private void PlayPopup()
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         if (_pm == null)
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             _pm = new PopupMenu();
 | 
						
						
						
							|  |  |             _pm.AddItem("Item 1", __clickMenu);
 | 
						
						
						
							|  |  |             _pm.AddItem("Item 2", __clickMenu);
 | 
						
						
						
							|  |  |             _pm.AddItem("Item 3", __clickMenu);
 | 
						
						
						
							|  |  |             _pm.AddItem("Item 4", __clickMenu);
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         if (_popupCom == null)
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             _popupCom = UIPackage.CreateObject("Basics", "Component12").asCom;
 | 
						
						
						
							|  |  |             _popupCom.Center();
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |         GComponent obj = _demoObjects["Popup"];
 | 
						
						
						
							|  |  |         obj.GetChild("n0").onClick.Add((EventContext context) =>
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             _pm.Show((GObject)context.sender, PopupDirection.Down);
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         obj.GetChild("n1").onClick.Add(() =>
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             GRoot.inst.ShowPopup(_popupCom);
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         obj.onRightClick.Add(() =>
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             _pm.Show();
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     private void __clickMenu(EventContext context)
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         GObject itemObject = (GObject)context.data;
 | 
						
						
						
							|  |  |         UnityEngine.Debug.Log("click " + itemObject.text);
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //------------------------------
 | 
						
						
						
							|  |  |     Vector2 startPos;
 | 
						
						
						
							|  |  |     private void PlayDepth()
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         GComponent obj = _demoObjects["Depth"];
 | 
						
						
						
							|  |  |         GComponent testContainer = obj.GetChild("n22").asCom;
 | 
						
						
						
							|  |  |         GObject fixedObj = testContainer.GetChild("n0");
 | 
						
						
						
							|  |  |         fixedObj.sortingOrder = 100;
 | 
						
						
						
							|  |  |         fixedObj.draggable = true;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         int numChildren = testContainer.numChildren;
 | 
						
						
						
							|  |  |         int i = 0;
 | 
						
						
						
							|  |  |         while (i < numChildren)
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             GObject child = testContainer.GetChildAt(i);
 | 
						
						
						
							|  |  |             if (child != fixedObj)
 | 
						
						
						
							|  |  |             {
 | 
						
						
						
							|  |  |                 testContainer.RemoveChildAt(i);
 | 
						
						
						
							|  |  |                 numChildren--;
 | 
						
						
						
							|  |  |             }
 | 
						
						
						
							|  |  |             else
 | 
						
						
						
							|  |  |                 i++;
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |         startPos = new Vector2(fixedObj.x, fixedObj.y);
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         obj.GetChild("btn0").onClick.Add(() =>
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             GGraph graph = new GGraph();
 | 
						
						
						
							|  |  |             startPos.x += 10;
 | 
						
						
						
							|  |  |             startPos.y += 10;
 | 
						
						
						
							|  |  |             graph.xy = startPos;
 | 
						
						
						
							|  |  |             graph.DrawRect(150, 150, 1, Color.black, Color.red);
 | 
						
						
						
							|  |  |             obj.GetChild("n22").asCom.AddChild(graph);
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         obj.GetChild("btn1").onClick.Add(() =>
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             GGraph graph = new GGraph();
 | 
						
						
						
							|  |  |             startPos.x += 10;
 | 
						
						
						
							|  |  |             startPos.y += 10;
 | 
						
						
						
							|  |  |             graph.xy = startPos;
 | 
						
						
						
							|  |  |             graph.DrawRect(150, 150, 1, Color.black, Color.green);
 | 
						
						
						
							|  |  |             graph.sortingOrder = 200;
 | 
						
						
						
							|  |  |             obj.GetChild("n22").asCom.AddChild(graph);
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //------------------------------
 | 
						
						
						
							|  |  |     private void PlayDragDrop()
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         GComponent obj = _demoObjects["Drag&Drop"];
 | 
						
						
						
							|  |  |         obj.GetChild("a").draggable = true;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         GButton b = obj.GetChild("b").asButton;
 | 
						
						
						
							|  |  |         b.draggable = true;
 | 
						
						
						
							|  |  |         b.onDragStart.Add((EventContext context) =>
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             //Cancel the original dragging, and start a new one with a agent.
 | 
						
						
						
							|  |  |             context.PreventDefault();
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             DragDropManager.inst.StartDrag(b, b.icon, b.icon, (int)context.data);
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         GButton c = obj.GetChild("c").asButton;
 | 
						
						
						
							|  |  |         c.icon = null;
 | 
						
						
						
							|  |  |         c.onDrop.Add((EventContext context) =>
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             c.icon = (string)context.data;
 | 
						
						
						
							|  |  |         });
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         GObject bounds = obj.GetChild("n7");
 | 
						
						
						
							|  |  |         Rect rect = bounds.TransformRect(new Rect(0, 0, bounds.width, bounds.height), GRoot.inst);
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         //---!!Because at this time the container is on the right side of the stage and beginning to move to left(transition), so we need to caculate the final position
 | 
						
						
						
							|  |  |         rect.x -= obj.parent.x;
 | 
						
						
						
							|  |  |         //----
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         GButton d = obj.GetChild("d").asButton;
 | 
						
						
						
							|  |  |         d.draggable = true;
 | 
						
						
						
							|  |  |         d.dragBounds = rect;
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     //------------------------------
 | 
						
						
						
							|  |  |     private void PlayProgressBar()
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         GComponent obj = _demoObjects["ProgressBar"];
 | 
						
						
						
							|  |  |         Timers.inst.Add(0.001f, 0, __playProgress);
 | 
						
						
						
							|  |  |         obj.onRemovedFromStage.Add(() => { Timers.inst.Remove(__playProgress); });
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     void __playProgress(object param)
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         GComponent obj = _demoObjects["ProgressBar"];
 | 
						
						
						
							|  |  |         int cnt = obj.numChildren;
 | 
						
						
						
							|  |  |         for (int i = 0; i < cnt; i++)
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             GProgressBar child = obj.GetChildAt(i) as GProgressBar;
 | 
						
						
						
							|  |  |             if (child != null)
 | 
						
						
						
							|  |  |             {
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |                 child.value += 1;
 | 
						
						
						
							|  |  |                 if (child.value > child.max)
 | 
						
						
						
							|  |  |                     child.value = 0;
 | 
						
						
						
							|  |  |             }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | } |