Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 在flex中创建子组件之前初始化自定义组件的属性_Apache Flex_Data Binding_Custom Component - Fatal编程技术网

Apache flex 在flex中创建子组件之前初始化自定义组件的属性

Apache flex 在flex中创建子组件之前初始化自定义组件的属性,apache-flex,data-binding,custom-component,Apache Flex,Data Binding,Custom Component,假设我有以下自定义组件: <s:Group 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> <![CDATA[ [Bindable] public v

假设我有以下自定义组件:

<s:Group 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>
    <![CDATA[
        [Bindable]
        public var prop:String;

        private function formatProp() : String {
            return "Hello, " + prop;
        }

    ]]>
    </fx:Script>

    <s:Label text="User: {prop}"/>
    <s:Label text="Greeting: {formatProp()}"/>
</s:Group>

如果我像这样将其添加到我的应用程序中:

<local:MyComponent prop="Hello"/>

结果如下:

User: Mark Greeting: Hello, null 用户:马克 问候语:你好,空 Flex似乎在初始化子标签后,正在我的自定义组件上设置
prop
,因此它依赖于属性更改事件来设置用户标签

有没有一种优雅的方法可以让Flex在最初评估绑定之前等待设置所有组件的属性


注意:我意识到formatProp函数很简单,可以内联使用,但这只是一个简化的示例。

它与组件livecycle无关,更与绑定规则有关。您的函数“formatProp”应该接收参数“prop”作为参数,以便在更改prop时调用。请尝试以下代码:

        private function formatProp(props:String) : String {
            return "Hello, " + props;
        }
        <s:Label text="Greeting: {formatProp(prop)}"/>
私有函数formatProp(props:String):String{
返回“你好,”+道具;
}
最“优雅的方式”是实际提供数据绑定,以便以后也可以更改属性。根据康奈尔提供的答案,您最初的想法看起来不错。我只是想提到这一点,因为您的实际问题听起来更像是您知道数据绑定不起作用,您只是想推迟变量的初始设置


顺便说一句,如果您计划在Actionscript(而不是mxml)中创建自定义组件,您将面临相反的问题:在您有机会实际创建子组件之前设置属性,因此,如果它们确实会影响某些Child的属性,您可能需要对它们进行缓冲。

您是否尝试从creationComplete事件运行formatProp Metethed?