标签:
没有想到我也做了一回标题党。其实这里边说的自动还是有夸大其词的部分。其实只是指定文件夹,然后根据指定文件夹数据,加载目录下边的内容而已。
怎么来进行Lua文件的加载
一般情况下,相关的功能需要给他创建一个相关的目录,然后直接通过我写的一个组件指定这个目录的加载位置就行了。不同的目录之间需要明确他们的加载顺序。
为什么要这么做?
实际引用
总结
其实是一个非常简单的功能,但是用处却非常大。可能我不是很会总结这个东西。哈哈。总之分享一下吧
文件
-- local lfs = require("lfs") local AutoRequire = class("AutoRequire") local instance = nil function AutoRequire:getInstance() return instance end function AutoRequire:init(dir) instance.OriginalPath = dir or lfs.currentdir() print("instance.OriginalPath", instance.OriginalPath) end function AutoRequire:getTag() return self._tag end function AutoRequire:getRequirePath() return self._require_path end function AutoRequire:require(path, data) local loadpath = self.OriginalPath..‘/‘..path assert(lfs.symlinkattributes(loadpath), "Error AutoRequire path not find "..path) lfs.chdir(loadpath) self._tag = data self._require_path = path local initfile = path..‘/‘.."init.lua" if cc.FileUtils:getInstance():isFileExist(initfile) then -- print("require("..initfile..")") local loadf = path..‘/‘.."init" -- print("require "..loadf) require(loadf) end for file in lfs.dir(loadpath) do if file ~= "." and file ~= ".." and file ~= "init.lua" and file ~= "loadend.lua" then local f = loadpath ..‘/‘..file local attr = lfs.attributes(f) local filename = string.gsub(file, ".lua$", "") if attr.mode == "file" and file ~= filename then -- print("require("..path..‘/‘..file..")") local loadf = path..‘/‘..filename -- print("require "..loadf) require(loadf) end end end local initfile = path..‘/‘.."loadend.lua" if cc.FileUtils:getInstance():isFileExist(initfile) then -- print("require("..initfile..")") local loadf = path..‘/‘.."loadend" -- print("require "..loadf) require(loadf) end self._tag = nil self._require_path = nil lfs.chdir(self.OriginalPath) end instance = AutoRequire.new() cc.exports.AutoRequire = AutoRequire return AutoRequire
标签:
原文地址:http://www.cnblogs.com/anxin1225/p/5866090.html