acecase 发表于 2023-4-11 15:54

Xlua学习笔记一

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 tendendend

aTable ={"one","two","three"}
f =IterFactory(aTable)print(f())--> oneprint(f())--> twoprint(f())--> threeprint(f())--> 不打印
页: [1]
查看完整版本: Xlua学习笔记一