1

好吧,尽管标题看起来很奇怪,但以下应用程序无法在 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>

为了回应评论并增加问题的清晰度:在这里,绑定机制不会更新resultText on typing in ti

4

1 回答 1

2

经过一天的调试和检查生成的动作脚本,问题被发现是Text元素的名称。将其重命名为其他任何东西都有效。我知道为什么在查看生成的代码后它会失败——生成的代码有一个内部变量“结果”,它与此处的目标名称冲突。所以,这行得通。注意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>

我发帖的原因是,我希望其他出现这种混乱行为的人能在谷歌中找到有用的东西!

我在这里也有一个问题。我在 Flex 4 上尝试过同样的事情,但它并没有落入同样的谬误。Flex 4 还生成了带有内部变量名称“result”的代码,但幸运的是避免了冲突,因为 Binding 构造函数中的 destFunction 设置为 null。OTOH,在 Flex3.5 中,它传递了一个执行实际赋值的匿名函数result.text=value,从而导致编译器混淆。我的问题是,我可以说服 Flex4 生成类似的匿名函数(因此有相同的错误)吗?

于 2013-03-22T17:58:01.953 回答