必须使用它来引用bindadle属性

时间:2013-05-21 09:12:32

标签: actionscript-3 flex flex3

如果使用{result}而不是{this.result},绑定机制将无法正常工作。我没有找到任何描述这件事的文件。我正在使用Flex 3.5。你知道原因吗?

<?xml version="1.0" encoding="utf-8"?>
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
    <mx:Script>
        <![CDATA[       
            [Bindable]
            public var result:String ="b";

            function confirm():void{
                result = "changed text";
            }
        ]]>
    </mx:Script>
    <mx:TextInput text="{this.result}"/>
    <mx:Button label="Confirm" buttonDown="{confirm();}"/>
</mx:Panel>

1 个答案:

答案 0 :(得分:1)

这不是Binding的问题。据我所知,你应该避免使用&#34;结果&#34;作为变量名,因为它由组件使用。如果你将结果重命名为result1,它将完美地工作,无论&#34;这个&#34;关键字。

要查看&#34;结果&#34;之间的区别和#34; this.result&#34;你可以尝试定义你的结果&#34;变量为静态变量。它看起来像这样:

enter image description here

因此,如果某个变量存在不确定性,那么这个&#34;意味着它是一个成员变量而不是静态变量。

这个表达式也可以显示两个变量之间的区别:

<mx:TextInput text="{this.result === result}"/>

在你的情况下它返回false。