Home  Previous Next

你可以在 MG-Picker工作室问&答版块 上面问问题。

Q: 如何避免硬写Picker对象的id?

要获取当前正编辑或互动的Picker对象的id, 比如你在编写一个命令按钮的命令,要获取这个命令按钮的id (下面是MEL代码,Python方式类似):

string $currentCmdBtn = `MGPicker -q -currentItem`;

 

要获取其它特定的按钮id, 仍然最好避免id硬写。因为id会被确保在一个picker里面是唯一的,所以当一个按钮被复制粘贴到其它picker,它的按钮id很可能不一样。这样就有可能导致一些代码无法使用。为了让这些代码更健壮通用,可以试着用名字属性来获取这些id。

对于每一个picker对象,都可以设置一个名字属性。这个属性是允许重复的,所以即使你复制粘贴按钮到不同picker, 这些名字属性值也不会变化。这样你就可以用这个名字作为标识, 来获取id。比如说你的按钮的名字设置为"targetButton", 这样有这个picker的任意位置您都可以使用下面mel代码来获取其id(python方式类似):

string $IDs[] =`MGPickerView -q -getIdFromName "targetButton"`;

它将返回所有名字为"targetButton"的picker对象的id数组。

如果你只有一个对象名字叫"targetButton",它仍将返回一个只包含一个id的数组,你之后可以使用$IDs[0]来作为该对象的id.

 

怎样遍历picker里所有的Picker对象?

如果您想获取当前picker里所有的选择按钮:

string $selectButtons[] = `MGPickerView -q -list "selectButton"`;

要列出所有类型的picker对象:

string $selectButtons[] = `MGPickerView -q -list ""`;

要列出所有类型的连接:

string $allLinks[] = `MGPickerView -q -listLinks ""`;

要了解更多,请查询MGPicker命令参考

 

怎么查询或编辑Picker视图的信息,而不用激活它?

从1.6版本开始,你可以通过:

string $currentViewId = `MGPicker -q -currentPickerView`;        //这个currentPickerView只有在执行如picker加载后命令或鼠标进入命令期间才会被设置。

// 有了这个视图id,你就可以用这个新命令来编辑,查询:    MGPickerView -q/-e ..$currentViewId;

Home Previous Next