Actionscript 3 如果目标以';结果';

Actionscript 3 如果目标以';结果';,actionscript-3,apache-flex,flex3,Actionscript 3,Apache Flex,Flex3,尽管标题看起来很奇怪,但以下应用程序未能按照Flex3.5中的预期工作: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> <mx:TextInput id='ti'/> <mx:Text id='result' text="{ti.text}"/> &

尽管标题看起来很奇怪,但以下应用程序未能按照Flex3.5中的预期工作:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
    <mx:TextInput id='ti'/>
    <mx:Text id='result' text="{ti.text}"/>
</mx:Application>


作为对该评论的回应,并为问题的进一步澄清:在这里,绑定机制不会在键入
ti

时更新
结果
文本。经过一天的调试和检查生成的actionscript后,发现问题是
文本
元素的名称。将其重命名为任何其他名称都有效。在查看生成的代码后,我知道它为什么失败了——生成的代码有一个内部变量“result”,它与此处的目标名称冲突。所以,这是可行的。注意
result1

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
    <mx:TextInput id='ti'/>
    <mx:Text id='result1' text="{ti.text}"/>
</mx:Application>

我写这篇文章的原因是,我希望其他人能在谷歌找到一些有用的东西

我这里还有一个问题。我用Flex4做了同样的尝试,但没有陷入同样的谬误。Flex4还生成了内部变量名为“result”的代码,但幸运的是,由于绑定构造函数中的dest函数设置为null,因此避免了冲突。在Flex3.5中,它传递了一个匿名函数,该函数执行实际赋值
result.text=value
,从而导致编译器混淆。
我的问题是,我是否可以说服Flex4生成类似的匿名函数(从而产生相同的bug)?

到底是什么失败?绑定不起作用。文本永远不会更新。我已经知道答案了,但我想把这个问题贴出来,这样其他可怜的人就可以得救了。