"Right" 的水平对齐在明亮的脚本中不起作用
Horizontal alignment as "Right" is not working in bright script
我正在尝试绘制一个带有按钮文本和按钮内部右侧文本的按钮。 XML 文件如下
<?xml version="1.0" encoding="utf-8" ?>
<component name="settingsButtons" extends="Group">
<interface>
<field id="itemContent" type="node" onChange="itemContentChanged"/>
</interface>
<script type="text/brightscript" >
<![CDATA[
sub itemContentChanged()
itemData = m.top.itemContent
m.buttonRect.width = itemData.buttonWidth
m.buttonRect.height = itemData.buttonHeight
m.buttonRect.color = itemData.buttonColor
m.buttonText.text = itemData.titleText
m.buttonText.translation = m.defaultTextTranslation
m.buttonText.color = itemData.textColor
m.buttonRightText.text = itemData.rightText
m.buttonRightText.translation = m.defaultRightTextTranslation
m.buttonRightText.color = itemData.textColor
end sub
sub initCoordinates()
m.defaultTextTranslation = "[30, 20]"
m.defaultRightTextTranslation = "[790, 20]"
end sub
sub init()
initCoordinates()
m.buttonRect = m.top.findNode("buttonRect")
m.buttonText = m.top.findNode("buttonText")
m.buttonRightText = m.top.findNode("buttonRightText")
end sub
]]>
</script>
<children>
<Rectangle id="buttonRect" translation="[0, 0]" width="820" height="70">
<Label id="buttonText" height="29" horizAlign = "left" vertAlign = "center" translation="[0, 0]" >
<Font role="font" uri="pkg:/fonts/NHaasGroteskDSStd-75Bd.otf" size="24" />
</Label>
<Label id="buttonRightText" height="29" horizAlign = "right" vertAlign = "center" translation="[0, 0]" >
<Font role="font" uri="pkg:/fonts/NHaasGroteskTXStd-55Rg.otf" size="24" />
</Label>
</Rectangle>
</children>
</component>
即使我将 horizAlign 保持为右对齐,buttonRightText 也会从显示 buttonText 的位置开始显示(即显示为左对齐)。你能告诉我如何解决这个问题吗?
从 SDK doc 开始,您需要为 horizAlign 指定一个宽度(不等于零)。
一个选项是让所有两个标签与矩形共享相同的宽度,并保持翻译为 [0, 0]
。
sub itemContentChanged()
itemData = m.top.itemContent
m.buttonRect.width = itemData.buttonWidth
m.buttonRect.height = itemData.buttonHeight
m.buttonRect.color = itemData.buttonColor
m.buttonText.text = itemData.titleText
m.buttonText.width = itemData.buttonWidth
m.buttonText.color = itemData.textColor
m.buttonRightText.text = itemData.rightText
m.buttonRightText.width = itemData.buttonWidth
m.buttonRightText.color = itemData.textColor
end sub
我正在尝试绘制一个带有按钮文本和按钮内部右侧文本的按钮。 XML 文件如下
<?xml version="1.0" encoding="utf-8" ?>
<component name="settingsButtons" extends="Group">
<interface>
<field id="itemContent" type="node" onChange="itemContentChanged"/>
</interface>
<script type="text/brightscript" >
<![CDATA[
sub itemContentChanged()
itemData = m.top.itemContent
m.buttonRect.width = itemData.buttonWidth
m.buttonRect.height = itemData.buttonHeight
m.buttonRect.color = itemData.buttonColor
m.buttonText.text = itemData.titleText
m.buttonText.translation = m.defaultTextTranslation
m.buttonText.color = itemData.textColor
m.buttonRightText.text = itemData.rightText
m.buttonRightText.translation = m.defaultRightTextTranslation
m.buttonRightText.color = itemData.textColor
end sub
sub initCoordinates()
m.defaultTextTranslation = "[30, 20]"
m.defaultRightTextTranslation = "[790, 20]"
end sub
sub init()
initCoordinates()
m.buttonRect = m.top.findNode("buttonRect")
m.buttonText = m.top.findNode("buttonText")
m.buttonRightText = m.top.findNode("buttonRightText")
end sub
]]>
</script>
<children>
<Rectangle id="buttonRect" translation="[0, 0]" width="820" height="70">
<Label id="buttonText" height="29" horizAlign = "left" vertAlign = "center" translation="[0, 0]" >
<Font role="font" uri="pkg:/fonts/NHaasGroteskDSStd-75Bd.otf" size="24" />
</Label>
<Label id="buttonRightText" height="29" horizAlign = "right" vertAlign = "center" translation="[0, 0]" >
<Font role="font" uri="pkg:/fonts/NHaasGroteskTXStd-55Rg.otf" size="24" />
</Label>
</Rectangle>
</children>
</component>
即使我将 horizAlign 保持为右对齐,buttonRightText 也会从显示 buttonText 的位置开始显示(即显示为左对齐)。你能告诉我如何解决这个问题吗?
从 SDK doc 开始,您需要为 horizAlign 指定一个宽度(不等于零)。
一个选项是让所有两个标签与矩形共享相同的宽度,并保持翻译为 [0, 0]
。
sub itemContentChanged()
itemData = m.top.itemContent
m.buttonRect.width = itemData.buttonWidth
m.buttonRect.height = itemData.buttonHeight
m.buttonRect.color = itemData.buttonColor
m.buttonText.text = itemData.titleText
m.buttonText.width = itemData.buttonWidth
m.buttonText.color = itemData.textColor
m.buttonRightText.text = itemData.rightText
m.buttonRightText.width = itemData.buttonWidth
m.buttonRightText.color = itemData.textColor
end sub