如何使用加密脚本的全局变量在Jmp13中使用加密脚本,我想读取一个预先指定的全局变量。
例:
使用标准脚本分配...
a=0;
b=10;
使用加密脚本
if (IsEmpty(a)==1,a=5); // DO NOTHING IF ITS NOT EMPTY
if (IsEmpty(b)==1,b=50); // DO NOTHING IF ITS NOT EMPTY
Write(a);
Write(b);
目标:如果未定义全局变量,请在加密脚本中指定它。 如果定义了全局变量,请使用defination。
它没有加密工作。 此外,执行加密脚本后,我可以看到分配的默认全局变量。
那么,是否可以使用带有加密脚本的全局变量?
谢谢您的帮助。
Re:如何使用加密脚本的全局变量好吧,你和 @Craige_Hales 是正确的,取消选中加载项构建器中的“使用此命名空间...”选项将解决您的特定问题。
但是,我确信 @Craige_Hales 我同意我的观点,更好的编程/脚本实践是在引用它们时适当地确定所有变量的范围。
默认情况下,“使用此命名空间...”选项处于启用状态,以保护全局命名空间免遭意外损坏。
Re:如何使用加密脚本的全局变量杰夫,谢谢你的确认。是的我同意。这是一个范围问题。但是,解决方案是取消选中加载项中的该框。这允许外部脚本设置全局,并允许内部加载项使用它。我希望我能在其中一个指南中找到它。那好吧。Re:如何使用加密脚本的全局变量我想这会让你接近答案;看起来默认是在插件中使用Here命名空间,因此您可能需要使用global:a而不是a
checked by default默认情况下已选中
Re:如何使用加密脚本的全局变量ANSWER ==> Un为未限定的JSL变量名单击“使用”Here“命名空间
它适用于标准加载项脚本和加密脚本。
Un select: Use the "Here" namespace取消选择:使用“Here”命名空间
Re:如何使用加密脚本的全局变量我相信这是一个范围和名称空间的问题,以及加载项菜单使用的事实名称默认为此处(1) 。
如果您尝试引用变量,则应始终使用a 范围运营商引用它们。全局变量的作用域运算符是::。
names default to here(1);
::a=0;
a=45;
if(::a==0, show("yes"));
if(here:a == 45, show("yes"));Re:如何使用加密脚本的全局变量进一步澄清:问题不在于加密,而在于加载项。直接在add中使用jsl会导致同样的问题。加载项看不到全局变量Re:如何使用加密脚本的全局变量澄清。问题在于在加载项中使用加密脚本。
刚刚确认它可以作为独立脚本使用加密。
那么加载项是否在不同的可变空间上运行?奇怪,因为我可以在此加载项中看到加密脚本中的其他变量
抱歉没有完全调试这个。