我建议 JMP 以与所有其他 GUI 框架相同的方式处理显示元素——除非内容已更改或调用特定的重绘(或无效)方法,否则不要重绘任何元素。
具体可以有请是一种让框架框在滚动窗口时不重绘内容(这包括重绘所有数据点和重新运行任何附加脚本)的方法?认真地说,绘制一次并保持位图(或像素图)持久,除非框已更改(大小更改/dt RowState 更改/无效方法)
这是个极度极端滚动浏览具有数千个点或复杂附加脚本的图形时,生产力会降低。目前“千方百计重画”的做法实在是莫名其妙。
这是一个示例——附加的脚本仅打印到日志中,但滚动图表显示每次滚动框更新时它如何不断运行(不要将 <
New Window( "Test",
vlb = V List Box()
);
::global function = Function( {},
Print( 1 );
);
For( i = 1, i <= 20, i++,
vlb << Append(
Graph Box(
Frame Size( 200, 200 ),
X Scale( -100, 100 ),
Y Scale( -100, 100 ),
::global function
)
)
)