使用Forge AggregatedView时如何避免进度条闪烁并实现全局加载跟踪
Forge AggregatedView 多模型加载进度条优化方案
要避免AggregatedView加载多模型时的进度条闪烁,实现全局进度的平滑更新,核心是放弃依赖单个模型的独立进度回调,转而维护全局加载状态,具体可以这么做:
- 预先规划全局进度计算规则
- 统计待加载模型的总数量,或者根据模型文件大小分配权重(比如文件大的模型占比更高)
- 初始化全局进度值为0,每完成一个模型加载,就按其权重占比累加进度;如果要更精细,还可以监听单个模型的
PROGRESS_UPDATE_EVENT,将该模型的实时进度按权重折算后加到全局进度中
- 禁用默认进度条,自定义全局进度组件
- 通过
viewer.setProgressBarVisibility(false)关闭AggregatedView自带的进度条,或者在初始化Viewer时配置showProgressBar: false - 自己实现一个进度条UI,在每个模型触发
Autodesk.Viewing.GEOMETRY_LOADED_EVENT时,更新全局进度值并同步到自定义组件;如果监听单模型进度事件,就实时更新进度条数值
- 通过
- 避免进度重置导致的闪烁
- 不要在加载新模型时将进度条重置为0,而是保持当前进度,继续累加后续模型的加载进度,直到所有模型加载完成后再将进度条置为100%或隐藏
内容的提问来源于stack exchange,提问作者piede
相关产品推荐
相关产品推荐

