Mxs:未在范围内定义转出控制值(文件输入)

Mxs: Rollout control value not defined in scope (filein)

我正在尝试从嵌套函数(我使用 filein() 命令调用的函数)内部访问转出控件(复选框、微调器等)的 state/value,但是我不断收到错误消息rolout 控件未定义。

我写了一些简单的代码来演示这个问题:

1) 使用filein命令输入文件的主脚本:

Rollout exporter "Simple Exporter" width:300 height:610 (
    button btn_do_stuff "Do stuff" pos:[18,14] width:116 height:60 
    checkbox some_option "some_option" pos:[18,100] width:116 height:60

    on btn_do_stuff pressed do(
        filein "printstuff.ms"
    )   
)
createdialog exporter

2) 使用 filein() 命令导入的脚本文件:

if some_option.checked == true then(
    messagebox "some_option.checked == true"
    )else(
    "some_option.checked == false"
    )

3) 错误信息:

-- Unknown property: "checked" in undefined <<

错误发生在正在使用 filein 导入的脚本文件的第一行: 以下行出现错误:

if some_option.checked == true then(

任何帮助将不胜感激,谢谢!

Filein 在全局范围内进行评估,它只能访问全局变量,不能访问您尝试访问的局部变量。也就是说,这里的解决方案很简单,因为 rollout 本身似乎是在全局范围内声明的——而不是 some_option.checked 使用 exporter.some_option.checked.