【发布时间】:2012-02-22 17:35:54
【问题描述】:
我试图在 Spark TextArea 中的每一行文本下方显示一条水平线。我想让文本区域看起来像法律文件。
【问题讨论】:
标签: apache-flex flex4 flex-spark
我试图在 Spark TextArea 中的每一行文本下方显示一条水平线。我想让文本区域看起来像法律文件。
【问题讨论】:
标签: apache-flex flex4 flex-spark
为控件设置textDecoration 样式。
【讨论】:
Ah 实际上在 Flex 3 中遇到了类似的问题,它为我们样式中的禁用链接按钮进行了删除。刚刚检查了代码并查看了 spark 标签的文档,发现我从 mx 标签中使用的函数明确表示它不起作用[来自 spark 标签中的 measureText()]:
测量指定的文本,假设它显示在一个 使用 UITextFormat 的单行 UITextField(或 UIFTETextField) 由这个 UIComponent 的样式决定。不适用于 Spark 组件,因为它们不使用 UITextField(或 UIFTETextField)。到 测量 Spark 组件中的文本,获取 a 的测量值 spark.components.Label 或 spark.components.RichText
所以我重新弄明白了:
<?xml version="1.0" encoding="utf-8"?>
<s:Label xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
<![CDATA[
override protected function updateDisplayList(unscaledWidth : Number, unscaledHeight : Number) : void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
drawLines();
}
private function drawLines() : void
{
var totalHeight : Number = 0;
for (var i : int = 0; i < mx_internal::textLines.length; i++)
{
totalHeight = mx_internal::textLines[i].y;
graphics.lineStyle(1, 0x000000);
graphics.moveTo(0, totalHeight);
graphics.lineTo(width, totalHeight);
}
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
</s:Label>
【讨论】: