Apache flex Flex自定义组件没有';t接受脚本:默认属性的多个初始值设定项值&x27;文本';,类型为';字符串';

Apache flex Flex自定义组件没有';t接受脚本:默认属性的多个初始值设定项值&x27;文本';,类型为';字符串';,apache-flex,flex4,Apache Flex,Flex4,我使用的是Flex 4和Flash Builder 4。我只想学习创建组件,我创建了一个mxml组件,如下所示,并将其包含在我的应用程序中: <?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

我使用的是Flex 4和Flash Builder 4。我只想学习创建组件,我创建了一个mxml组件,如下所示,并将其包含在我的应用程序中:

<?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:Script>
    </fx:Script>
</s:TextInput>

如果我去掉fx:Script标记,它就会工作,但一旦我有了这些标记(不管是否有任何实际代码在其中),我就会得到错误:“Flex自定义组件不接受脚本:默认属性的多个初始值设定项值,‘text’,类型‘String’。”


为什么会这样?组件中不允许使用脚本吗?

如果将
TextInput
更改为
按钮
就可以了


问题是
TextInput
Script
视为
text
属性的值。我认为这是一个编译器错误。

另一种解决方法是使用actionscript而不是mxml扩展TextInput:

package
{
    import spark.components.TextInput;

    public class TestTextInput extends TextInput
    {
        public function TestTextInput()
        {
            super();
        }
    }
}
这是一个已知的错误。里程碑是下一个FlexSDK英雄版本。如果显式设置text属性,仍然可以使用mxml

<?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"
             text="">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
</s:TextInput>


谢谢。

啊,好的。顺便说一下,它还为fx:Declarations提供了错误。