我们怎样才能得到Spark TextInput像素的实际文字宽度?

Muh*_*faq 1 apache-flex flash textinput

因为textWidth属性在spark textinput中无法访问,我们如何才能获得该属性?

Ken*_*Dev 7

在火花中有一种叫做的东西 TextLineMetrics

你可以这样做

var tm:TextLineMetrics = label.measureText( name );
var width:int = tm.width;
Run Code Online (Sandbox Code Playgroud)

这是一个例子

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

<fx:Script>
    <![CDATA[
        import mx.controls.Alert;
        import mx.controls.Text;

        protected function cmdDoAction_clickHandler(event:MouseEvent):void
        {
            var tm:TextLineMetrics = cmdDoAction.measureText(cmdDoAction.label);
            var _width:int = tm.width;

            Alert.show(_width.toString());
        }
    ]]>
</fx:Script>

<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

<s:Button id="cmdDoAction"
          label="Kensodev"
          click="cmdDoAction_clickHandler(event)"/>
    </s:Application>
Run Code Online (Sandbox Code Playgroud)

这将为您提供实际宽度

  • 根据文档不适用于Spark文本组件:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/core/UIComponent.html#measureText() (2认同)