我正在尝试使用Jangaroo将一些旧的动作脚本代码(Flash应用程序的一部分)编译为JS。 Jangaroo不支持E4X语法,并且在双点运算符..
或方括号过滤器a.(CONDITION)
之类的情况下失败。因此,我需要使用普通的ActionScript重写代码的那些部分。
对于双点运算符,我使用了descendants()
方法,但找不到写方括号过滤器的替代方法。
这是我原来的代码:
B = xml..destination.(@id == someId)
我现在写的是:
B = xml.descendants("destination").(@id == someId)
但是我仍然想删除.(@id == someId)
。
我在想类似的东西:
if (xml.descendants("destination").attribute("id") == someId)
{
B = xml.descendants("destination")
}
这可能吗?
所以这就是我继续的方式。我尚未测试其功能,但编译器通过了它。
var destinations:XMLList = null;
for each (var elm in xml.descendants("destination") )
{
if ( elm.attribute("id") == someId )
{
destinations += elm;
}
}