回复:JSL 是否提供类似于纺车或条形图的“忙碌”指示器?
这是一个用 JSL 制作的进度指示器的示例;它使用命名空间来封装代码。最后几行是测试,尝试设置工作量更大或更小。为了平稳的性能,progress:set 函数必须经常被调用。 progress:init 函数需要知道将完成的工作总量以获得正确的百分比。
编辑:附上 JSL 的副本,显然内联 JSL 可能无法正确显示。

progress = New Namespace(
"progress"
);
progress:init = Function( {workload},
progress:TotalWork = workload;
progress:Current = -1;
progress:tick = Tick Seconds();
progress:Window = New Window( "progress",
H List Box(
Spacer Box( size( 20, 20 ) ),
progress:busy = Busy Light( <<SIZE> 1 / 30,
progress:tick = now;
If( pct != progress:Current,
progress:Current = pct;
progress:left << size( progress:Current, 20 );
progress:right << size( 100 - progress:Current, 20 );
progress:text << settext( Char( pct ) || "%" );
);
progress:busy << advance;
Wait( 0 );
)
);
progress:term = Function( {},
progress:Window << closeWindow
);
/////////////////////////
// test
/////////////////////////
workload = 1e6; // 1e6 is about 5 seconds
progress:init( workload );
For( i = 1, i <= workload, i++,
progress:set( i )
);
progress:term();</SIZE>