现在我正在使用UIEventListener添加一个clicker。当我在一个文件中写它时,它可以正常工作。像这样:
UIEventListener.Get(popButton).onClick = showPop;
但是当我把它写成两个seprate文件时,它给了我error.first文件:
public class Adapter{
var grid:GameObject;
function addItems(data:List.<PrintItem>, prefab:GameObject, func:Function){
for(var i:int=0;i<data.Count;i++){
var gameObject:GameObject = NGUITools.AddChild(grid, prefab);
UIEventListener.Get(gameObject).onClick = func;
}
}
}
第二档:
//I use the funtion like this
adapter.addItems(list, GO[0], hidePop);
//the hidePop is like this
var hidePop:Function = function(){
switchPopMenu(false);
};
当我运行统一时给我错误
InvalidCastException: Cannot cast from source type to destination type.
Adapter.addItems (System.Collections.Generic.List`1 data,
UnityEngine.GameObject prefab, ICallable func) (at
Assets/Scripts/yhj/Tools/Adapter.js:12)
答案 0 :(得分:0)
尝试使用EventDelegate.Add(obj.onClick, func);
。直接分配可能会导致某些问题。