JMPが他のすべてのGUIフレームワークと同じ方法で表示要素を処理することを提案しました。コンテンツが変更されるか、特定の再描画(または無効)メソッドが呼び出されない限り、要素を再描画しないでください。
具体的には、お願いしますウィンドウがスクロールされるたびにフレームボックスがコンテンツを再描画しないようにする方法(これには、すべてのデータポイントの再描画と、添付されたスクリプトの再実行が含まれます)ですか?真剣に、ボックスが変更されていない限り、一度描画してビットマップ(またはピックスマップ)を永続的に保ちます(サイズ変更/ dt RowState変更/無効メソッド)
これはめちゃくちゃ極端何千ものポイントや複雑なスクリプトが添付されているグラフをスクロールすると、生産性が低下します。「何があっても、あらゆる機会に再描画する」という現在の方法は、非常に困惑しています。
次に例を示します。添付されたスクリプトは単にログに出力されますが、グラフをスクロールすると、スクロールボックスが更新されるたびに常に実行されていることがわかります(<< invalメソッドを子ボックスに伝播しないでください、ffs)
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
)
)
)