CloseMaxscript 用户手册 打包调用附属文件

适用场景

多文件脚本存在的情况
大量调用文件存在,每次都启动运行时将占用启动时间

注意

附属文件,不支持动态相对路径,需要用到路径的地方都应该由主文件统一全局管理发布
以下这些变量需要在启动文件夹中定义全局引用:getsourcefilename, getthisscriptfilename, getsourcefileoffset, getsourcefileline等等

示例

在下面的脚本工具中
我们仅需要加密主文件即可,并不需要加密 1.ms 2.ms 3.ms .... 的部分文件

引入一个全局的执行函数,fileinPartScriptFile

建议最好改一个名字,什么都可以,就是不要叫这个名字
因为上一个看到这个文档的老哥也可能用这个名字,这样你们的函数就冲突了

xxx_cmxs_rt 也改成你自己的唯一全局变量名,注意这个变量需要在一开始就申明,如果你在后期函数内调用它,他可能就是别人的包
将原有的filein替换为引入的函数(后缀就是你自定义的后缀,详见下方)

以下代码为你的源代码修改示例

try(destroyDialog testRoll)catch()
global myToolBarRootPath = getFilenamePath (getThisScriptFilename())
--在脚本运行的第一时间拿到右边变量的引用,后续这个变量可能是别人的了
global xxx_cmxs_rt = CodeContainer.maxScriptRuntime
global fileinPartScriptFile
fn fileinPartScriptFile dataFile =
(
xxx_cmxs_rt.C037EB3749AM dataFile "flag"
)
rollout testRoll ""
(
button btn1 "tool1" width:80
button btn2 "tool2" width:80
button btn3 "tool3" width:80
--on btn1 pressed do filein "1.ms"
--on btn2 pressed do filein "2.ms"
--on btn3 pressed do filein "3.ms"
on btn1 pressed do fileinPartScriptFile "c:\\1.data"
on btn2 pressed do fileinPartScriptFile "c:\\2.data"
on btn3 pressed do fileinPartScriptFile (myToolBarRootPath + "3.data")
)
createDialog testRoll 200 200

对MyToolBar.ms文件进行加密,得到MyToolBar.mse文件

打包部分文件,在MyToolBar.ms同目录建立一个单独的 _发布.ms 文件用于发布
你可以编写自己的规则,比如使用for循环对文件进行处理

在打包前你应该删除旧的文件(以下代码并未包含删除文件的内容)
当然自动化删除复制文件非常危险,强烈建议测试时将原始文件备份到其他地方或上传至网络

以下代码为你调用打包时的代码示例

global MyToolBarRootPath = getFilenamePath (getThisScriptFilename())
--加密部分文件
fn enc scrFile savePath =
(
rt = CodeContainer.maxScriptRuntime
rt.C522FE03F65M scrFile savePath "flag"
)
--建立发布目录
publicDir = MyToolBarRootPath + "public\\"
makedir publicDir
--在发布前需要运行一次加密工具
--如果存在旧文件请手动删除
--开始发布,格式随意不一定是.data,也可以是.mp4
enc (MyToolBarRootPath + "1.ms") (publicDir + "1.data")
enc (MyToolBarRootPath + "2.ms") (publicDir + "2.data")
enc (MyToolBarRootPath + "3.ms") (publicDir + "3.data")
enc (MyToolBarRootPath + "4.ms") (publicDir + "4.data")
enc (MyToolBarRootPath + "5.ms") (publicDir + "5.data")

执行上方代码,并将MyToolBar.mse与他们放在一起
运行MyToolBar.mse点击按钮,你应该获得与编写测试时的一致效果

函数示意

此函数C037EB3749AM为打开文件并执行操作
返回值:
"<ok>" 源代码执行正确
"<error-s>" 源代码执行失败,可能代码内部逻辑问题
"<error-e>" 打开错误,可能文件未找到,或密码不正确

posted @   trykle  阅读(139)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示