如何在flex 3中的Label或text中使用删除线?
答案 0 :(得分:3)
我需要同样的东西,并最终简化了mediagreenhouse解决方案:
package
{
import flash.text.TextLineMetrics;
import mx.core.mx_internal;
import mx.controls.Label;
use namespace mx_internal;
public class StrikeLabel extends Label
{
public function StrikeLabel()
{
super();
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList( unscaledWidth, unscaledHeight );
if( textField )
{
var metrics : TextLineMetrics = textField.getLineMetrics( 0 );
var y : int = ( metrics.ascent * 0.66 ) + 2;
graphics.clear();
graphics.lineStyle( 1, getStyle( "color" ), 1 );
graphics.moveTo( 0, y );
graphics.lineTo( metrics.width, y );
}
}
}
}
答案 1 :(得分:0)
答案 2 :(得分:0)
根据您的确切需要,您可以创建子类标签,覆盖updateDisplayList,只需在文本中间画一条线。
答案 3 :(得分:0)
这里的Flex 3示例:http://flexsnippets.mediagreenhouse.com/?p=46