EZGUI组件:UIScrollList的点击事件

 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 public class ScrollListTest : MonoBehaviour
 5 {
 6 
 7     public UIScrollList list;
 8     public GameObject prefab;
 9 
10     void Start()
11     {
12         for (int i = 0; i < 5; i++)
13         {
14             UIListItem item = (UIListItem)list.CreateItem(prefab);
15             item.Data = i;
16             item.SetControlState(UIButton.CONTROL_STATE.NORMAL);
17             item.AddInputDelegate(MyDelegate);
18         }
19         //list.SetSelectedItem(0);
20 
21     }
22 
23     void MyDelegate(ref POINTER_INFO ptr)
24     {
25         
26         if (ptr.evt == POINTER_INFO.INPUT_EVENT.TAP)
27         {
28             Debug.Log(ptr.targetObj.Data);
29         }
30        
31     }
32 
33 }

之前在MyDelegate里面做的是

        if ((ptr.targetObj.Data == list.SelectedItem.Data) && (ptr.evt==POINTER_INFO.INPUT_EVENT.TAP))
        {
            Debug.Log("data   " + list.SelectedItem.Data);
        }

在判断里面多加了一个条件,于是乎报出list.SetSelectedItem的空指针异常,随后添加上了第十九行代码,运行无误了,但是出现了两个问题,需求不一定是事先要选中某一个,另外得点击两次才能打印出Log,原因是第一次点击是为list.SetSelectedItem赋值,第二次点击才是正确的逻辑。多虑了,直接在ScrollList中取出值就行了,不需要做是否点击的哪一个ListItem。唉2了

posted @ 2012-09-01 15:51  Marble  阅读(569)  评论(0编辑  收藏  举报