local require = require local string = string local table = table int64.zero = int64.new(0,0) uint64.zero = uint64.new(0,0) function string.split(input, delimiter) input = tostring(input) delimiter = tostring(delimiter) if (delimiter=='') then return false end local pos,arr = 0, {} -- for each divider found for st,sp in function() return string.find(input, delimiter, pos, true) end do table.insert(arr, string.sub(input, pos, st - 1)) pos = sp + 1 end table.insert(arr, string.sub(input, pos)) return arr end function import(moduleName, currentModuleName) local currentModuleNameParts local moduleFullName = moduleName local offset = 1 while true do if string.byte(moduleName, offset) ~= 46 then -- . moduleFullName = string.sub(moduleName, offset) if currentModuleNameParts and #currentModuleNameParts > 0 then moduleFullName = table.concat(currentModuleNameParts, ".") .. "." .. moduleFullName end break end offset = offset + 1 if not currentModuleNameParts then if not currentModuleName then local n,v = debug.getlocal(3, 1) currentModuleName = v end currentModuleNameParts = string.split(currentModuleName, ".") end table.remove(currentModuleNameParts, #currentModuleNameParts) end return require(moduleFullName) end --重新require一个lua文件,替代系统文件。 function reimport(name) local package = package package.loaded[name] = nil package.preload[name] = nil return require(name) end function GetPreferredHeight(_transform) if LayoutRebuilder then LayoutRebuilder.ForceRebuildLayoutImmediate(_transform) end return LayoutUtility.GetPreferredHeight(_transform) end function GetPreferredWidth(_transform) if LayoutRebuilder then LayoutRebuilder.ForceRebuildLayoutImmediate(_transform) end return LayoutUtility.GetPreferredWidth(_transform) end