我有一个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行都没有任何有趣的内容。
任何提示?任何人都有类似的经历吗?
答案 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