Flex数据绑定功能(非吸气剂)

时间:2011-07-27 19:48:13

标签: flex actionscript-3 data-binding flex3

我有一个flex应用程序依赖于一个稍微抽象flex的resourceManager的类。我正在使用的(纯AS3)类扩展了EventDispatcher,并处理本地化信息的运行时加载以及返回翻译的标记。 我无法使用base resourceManager,因为如果找不到令牌,我不希望它返回null。

/ endexposition

当我尝试使我的getString函数可绑定时,我的问题出现了。

[Bindable(event="bundleLoaded")]
public function getString...

适当地调度“bundleLoaded”事件。这个函数在我参与开发的90%的应用程序中都能正常工作。但是,对于一个应用程序,我收到以下混淆错误:

  

1084:语法错误:在s之前期待rightbrace。资源=(ProjectName)路径=(null)位置=第301行

应用程序在添加[Bindable ...]行之前编译并工作(显然减去绑定),但是在我添加该行之后它拒绝正确编译。在任何应用程序或支持类的第301行都没有任何有趣的内容。

任何提示?任何人都有类似的经历吗?

1 个答案:

答案 0 :(得分:0)

好吧,在搜索生成的代码之后,我发现了一个问题(将错误报告给flex sdk)。

我的代码将文本属性绑定到资源(用于本地化)。

该属性使用三元操作。一旦我创建了这个绑定,生成的代码就会删除“:”和“?”从我的三元操作,并导致错误。

    myResourceManager.getString('bundle','token',[numDays, numDays != 1 ? 's' : ''])

编译器把它变成了......

    new mx.binding.FunctionReturnWatcher("getString", target, 
        function():Array 
        { return [ "bundle", "token", [target.numDays, target.numDays != 1"s"""] ]; }

给我一​​个漂亮,模棱两可的编译器错误。谢谢你们,伙计们!这是固定的。

编辑:如果有人感兴趣:https://bugs.adobe.com/jira/browse/SDK-30937