Инициализация выполняется в случае, но объявление эффективно выполняется в верхней части области. (Psuedo-code)
switch (Type)
{
string variable;
case Type.A:
variable = "x";
break;
case Type.B:
variable = "y";
break;
}
На самом деле это довольно просто. Вам нужно будет использовать список разметки, в котором вы можете создать список пользовательских компонентов Scenegraph. Сначала создайте пользовательский компонент Scenegraph, который расширяет группу, с двумя разными узлами Label в качестве дочерних. Я бы установил поле перевода для одного узла как [x.0], в зависимости от того, насколько далеко вы хотите, чтобы эти две метки были, или вы можете использовать узел ярлыков. Затем создайте markupList и установите «itemComponentName» для настраиваемого компонента с двумя метками. Наконец, создайте Content-узел как дочерний узел списка разметки с необходимыми данными (в данном случае двумя текстовыми полями) следующим образом:
<MarkupList
id = "MarkupList"
itemComponentName = "<INSERT COMPONENT ITEM HERE>"
numRows="3" >
<ContentNode id = "ContentNode" role = "content" >
<ContentNode
text1="Label 1"
text2="Label 2"/>
<ContentNode
text1="Label 1"
text2="Label 2"/>
<ContentNode
text1="Label 1"
text2="Label 2"/>
</ContentNode>
</MarkupList>`
Возможно, вам придется использовать метод addFields () вместо этого добавить контент для метки.
Вот некоторые ресурсы из Roku SDK: Создание пользовательских компонентов - https://sdkdocs.roku.com/display/sdkdoc/Creating+Custom+ Компоненты
MarkupList - https://sdkdocs.roku.com/display/sdkdoc/MarkupList
addField () - https://sdkdocs.roku.com/display/sdkdoc/ifSGNodeField#ifSGNodeField-addFields(fieldsasObject)asBoolean