You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
	
	
		
			
				
					
						
							|  |  |  |  | using UnityEngine; | 
					
						
							|  |  |  |  | using FairyGUI; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | public class CurveMain : MonoBehaviour | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     GComponent _mainView; | 
					
						
							|  |  |  |  |     GList _list; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     void Start() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         Application.targetFrameRate = 60; | 
					
						
							|  |  |  |  |         Stage.inst.onKeyDown.Add(OnKeyDown); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         _mainView = this.GetComponent<UIPainter>().ui; | 
					
						
							|  |  |  |  |      | 
					
						
							|  |  |  |  |         _list = _mainView.GetChild("list").asList; | 
					
						
							|  |  |  |  |         _list.SetVirtualAndLoop(); | 
					
						
							|  |  |  |  |         _list.itemRenderer = RenderListItem; | 
					
						
							|  |  |  |  |         _list.numItems = 5; | 
					
						
							|  |  |  |  |         _list.scrollPane.onScroll.Add(DoSpecialEffect); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         DoSpecialEffect(); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     void DoSpecialEffect() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         //change the scale according to the distance to middle | 
					
						
							|  |  |  |  |         float midX = _list.scrollPane.posX + _list.viewWidth / 2; | 
					
						
							|  |  |  |  |         int cnt = _list.numChildren; | 
					
						
							|  |  |  |  |         for (int i = 0; i < cnt; i++) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             GObject obj = _list.GetChildAt(i); | 
					
						
							|  |  |  |  |             float dist = Mathf.Abs(midX - obj.x - obj.width / 2); | 
					
						
							|  |  |  |  |             if (dist > obj.width) //no intersection | 
					
						
							|  |  |  |  |                 obj.SetScale(1, 1); | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 float ss = 1 + (1 - dist / obj.width) * 0.24f; | 
					
						
							|  |  |  |  |                 obj.SetScale(ss, ss); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     void RenderListItem(int index, GObject obj) | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         GButton item = (GButton)obj; | 
					
						
							|  |  |  |  |         item.SetPivot(0.5f, 0.5f); | 
					
						
							|  |  |  |  |         item.icon = UIPackage.GetItemURL("Curve", "n" + (index + 1)); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     void OnKeyDown(EventContext context) | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         if (context.inputEvent.keyCode == KeyCode.Escape) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Application.Quit(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } |