You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MaxScript如何获取SubRollout中子滚动面板的实际显示排序

问题原因

mainRolTest.mainSubRollout.rollouts 存储的是子滚动面板的初始添加顺序,MAXScript原生设计下该数组不会跟随用户拖动调整的显示顺序更新。

解决方法

子滚动面板的实际显示顺序和自身Y轴坐标直接相关:界面上越靠上的面板,pos.y 属性值越小,按该值升序排列所有子面板即可得到当前实际显示顺序。

实现代码如下:

-- 定义获取排序后子面板的函数
fn getSortedSubRollouts subRolloutControl = 
(
    local allSubRolls = copy subRolloutControl.rollouts
    -- 按Y坐标从小到大排序(对应界面从上到下的顺序)
    qsort allSubRolls fn sortCompare rollA rollB = if rollA.pos.y < rollB.pos.y then -1 else 1
    return allSubRolls
)

-- 调用示例
getSortedSubRollouts mainRolTest.mainSubRollout

将Sub 2拖动到顶部后调用上述函数,返回结果即为预期的 #(Rollout:subRollout2, Rollout:subRollout1)。


内容的提问来源于stack exchange,提问作者Ste

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:57:02