About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Jan

    29

    Feathers3 TextInput 一些备注

    • 0 Comments
    • Flash Platform
    • 发布:古树悬叶
    • 引用:0
    • 浏览:

    TextInput 在备注文本编辑器资料时基本已经全部备注,只是 TextInput 除了文本编辑器部份外,还包含了一些自动化相关的功能与皮肤样式等功能。

    比如支持 prompt 功能:

    input.prompt = "Password";

    比如支持设置焦点与选择:

    input.setFocus();//程序化的获得焦点
    input.selectRange(0, input.text.length);//程序化的选择文本

    如果只是想简单的通过程序化的方式设置光标的位置,可以省略 selectRange()  第二参数:

    input.selectRange(0);

    TextInput 支持大量的类似 FLEX 框架中 TextInput 组件事件,如 Event.CHANGE、FeathersEventType.FOCUS_IN、FeathersEventType.FOCUS_OUT、FeathersEventType.ENTER 等事件。

    a、某些移动平台上 TextInput 组件可能并不会派发 FeathersEventType.ENTER 事件,具体取决于某些属性的值。这可能包括一些平台的默认值! 如果遇到此类问题,需要参考具体的“文本编辑器”的API文档,了解问题原因的限制和要求的完整详情。

    b、既便没有启用焦点管理器,TextInput 也会派发 FeathersEventType.FOCUS_IN、FeathersEventType.FOCUS_OUT 事件。

    maxChars 属性可以限制最大的输入字符数量;restrict 可以限制输入的字符。

    TextInput 可以设置多个状态的字体样式,如:fontStyles、disabledFontStyles、promptFontStyles、promptDisabledFontStyles 等。

    甚至可以自定义用户每个输入状态的字体样式,如:

    input.setFontStylesForState( TextInputState.ERROR,new TextFormat( "Helvetica", 20, 0xcc0000 ) );

    当 TextInput  显示 errorString 属性时,会自动进入 TextInputState.ERROR 状态设置的文本样式。

    如果没有为某个状态设置字体样式,那么就会显示为默认的 fontStyles,比如一般我们没有设置 TextInputState.FOCUSED 状态的字体样式,所以显示的就是默认的 fontStyles。

    但是当 TextInput 获得焦点的时候,我们有可能会更改它的背景纹理。可以通过 setSkinForState() 方法实现,比如:

    var disabledSkin:ImageSkin = new ImageSkin( disabledTexture );
    input.scale9Grid = new Rectangle( 4, 2, 2, 10 );
    input.setSkinForState( TextInputState.DISABLED, disabledSkin );

    可以为 TextInput 添加一个图标(icon)。 可以为每个文本输入的状态定制图标(就像背景皮肤一样),比如,传递一个 starling.display.Image 对象:

    input.defaultIcon = new Image( iconTexture );

    如果只是简单的这样设置,这个默认的图标(defaultIcon)会在每个不同的状态都显示,如果想为单独的状态设置不同的图标,可以通过 setIconForState() 方法实现。

    TextInput 有一些常见的布局属性,如 paddingTop、paddingRight、paddingBottom、paddingLeft、padding 等。

    另一个比较有用的与布局有关的属性是 typicalText 。默认情况下,TextInput 的尺寸不会以输入的文本为尺寸进行计算,而是根据背景皮肤,填充和其他布局属性进行计算出来的。但有时候我们会需要根据文本的内容来显示对应尺寸的 TextInput ,比如一个 NumericStepper 组件,根据最大的可能的字符串来显示文本区域的尺寸可能是最合适的。

    • Tags:
    • 2017 / 1 / 29
    相关文章:
      Post Comment.

      发表评论