2013-05-21 49 views
0

如果使用{result}而不是{this.result},则绑定机制不能工作。我没有找到任何文件描述这件事。我正在使用Flex3.5。你知道原因吗?这必须用于引用bindadle属性

<?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

这不是绑定问题。据我所知,你应该避免使用“result”作为变量名,因为它被组件使用。如果将结果重命名为result1,则无论“this”关键字如何,它都能正常工作。

要查看“result”和“this.result”之间的区别,您可以尝试将“result”变量定义为静态变量。它看起来是这样的:

enter image description here

所以,如果有关于一些变量的不确定性“这”意味着它是一个成员变量,而不是静态的。

这个表达式可以告诉你两个变量之间的差异,以及:

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

返回你的情况虚假。

+0

非常棒,感谢您的回答。它解决了我的pullze。 –

相关问题