About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Nov

    17

    任意新建一个 MXML 组件继承自 spark 版本 TextInput  组件,不添加任何扩展代码: 

    <?xml version="1.0" encoding="utf-8"?>
    <s:TextInput xmlns:fx="http://ns.adobe.com/mxml/2009" 
                 xmlns:s="library://ns.adobe.com/flex/spark" 
                 xmlns:mx="library://ns.adobe.com/flex/mx"
                 >

        <fx:Declarations>
            <!-- 将非可视元素(例如服务、值对象)放在此处 -->
        </fx:Declarations>

    </s:TextInput>

    当把这个组件应用到项目中去时,会遇到这样的 Bug 提示: 

    “String”类型的默认属性“text”有多个初始值设定项值。

    但如果把 spark 的前缀 s 换成 mx 的 TextInput  组件则完全正常。但如果样式已经经过自定义,换成 mx 则不通用。

    解决方法:

    第一种:采用纯 AS 语法继承 TextInput  ,放弃使用 MXML 语法。

    第二种:继续使用 MXML 语法,但插入任意一个已知属性,以 visible 属性为例(也可以是类似 alpha 等这样的属性):

    <?xml version="1.0" encoding="utf-8"?>
    <s:TextInput xmlns:fx="http://ns.adobe.com/mxml/2009" 
                 xmlns:s="library://ns.adobe.com/flex/spark" 
                 xmlns:mx="library://ns.adobe.com/flex/mx"
                 >

        <s:visible>true</s:visible>

        <fx:Declarations>
            <!-- 将非可视元素(例如服务、值对象)放在此处 -->
        </fx:Declarations>

    </s:TextInput>