|
1.Xlua学习笔记一
1.设置Rect的宽高:- self.inputRect.sizeDelta =Vector2(self.inputRect.sizeDelta.x, newHeight);
复制代码 2.取最大值- local newHeight = math.max(self.originHeight, input.preferredHeight +20);
复制代码 取最小值
local realCount = math.min(count, prefabCount)
3.向下取整- self.txt_bonus.text = math.floor(self.roomInfo.MinScore * Const.netWin *2)
复制代码 4.table 的长度- #+table
- 例如:self.speedIndex =#speedTab
复制代码 5.获取组件孩子- for i =1, self.scroll_rank.content.childCount dolocal node=self.scroll_rank.content:GetChild(i -1)local item=AvatarFrameNode:create(node)
- table.insert(self.rankItemArr,item )
复制代码 6.延迟接口:- LuaTimer.Add(300,function()---延迟处理,避免受弹框动画影响
- App.Notice(AppMsg.TaskGuide, body)end)
复制代码 7.加载动画- self.avatarFrame=AvatarFrameNode:create(self.btn_head.transform)
复制代码 8.加载预制体- local prefab = ResourceMgr:LoadUIPrefab(path)
复制代码 9.字符串强转- tostring(num)=>数字转为字符串
- tonumber(str)=>字符串转为数字
复制代码 10.assert
assert (v [, message])- 1.如果其参数 v 的值为假(nil 或 false), 它就调用 error; 否则,返回所有的参数。
- 在错误情况时, message 指那个错误对象; 如果不提供这个参数,参数默认为 “assertion failed!” 。
- 2.assert是error的包装,将判断之类的操作包装了进去!所以使用assert比之使用error更为方便!
- 3. 第一个参数为nil或判断的结果为false的时候抛出错误,中止运行,调用error函数;否则继续执行!
- 4.第二个参数为可选的错误提示信息,如果提供这个参数,调用error函数的时候则打印出message;否则使用默认的"assertion failed!"。
复制代码- for i, v inipairs(Cache.config.prop_configs)doif v.enable andnot string.isEmpty(v.sku)then
- table.insert(Cache.skuArr, v.sku)endend
复制代码 迭代器和泛型for
Lua中的迭代器常用函数来描述迭代器,每次调用该函数就返回集合的下一个元素。
下面是一个例子:- functionIterFactory(t)-->创建迭代器的工厂local i =0local n =#t -->获取表的长度,只对列表形式的有效returnfunction()-->这个是迭代器
- i = i +1if i <= n thenreturn t[i]endendend
-
- aTable ={"one","two","three"}
- f =IterFactory(aTable)print(f())--> oneprint(f())--> twoprint(f())--> threeprint(f())--> 不打印
复制代码 |
|