FMS的eval不支持动态数组的指向解决方法
作者:admin 日期:2010-05-03
今天开发时又发现fms的一个Bug. 不支持eval的字符串指向数组. 在flash中同样的代码移值到FMS中就不行了.
如:
a=new object()
a.b=[111,222]
这时候用eval("a.b.0") FMS就报错了.
当然因为我用到的是动态数组路径,这种情况比较特殊. 一般路径如果是已知的直接用 this["a"]["b"][0]或
a.b[0] 就直接指向了.正因为路径是动态,所以得关联字符串用eval则报错.
解决方法如下:
ponitArr=["a","b","0"]
head =this
for (var i = 0; i<ponitArr.length-1; i++) {
head = head[ponitArr[i]];
}
trace(head[ponitArr[ponitArr.length-1]])
用遍历的方法取到数组倒数第2层的引用.再动态引用就直接能操作该数值了.
如:
a=new object()
a.b=[111,222]
这时候用eval("a.b.0") FMS就报错了.
当然因为我用到的是动态数组路径,这种情况比较特殊. 一般路径如果是已知的直接用 this["a"]["b"][0]或
a.b[0] 就直接指向了.正因为路径是动态,所以得关联字符串用eval则报错.
解决方法如下:
ponitArr=["a","b","0"]
head =this
for (var i = 0; i<ponitArr.length-1; i++) {
head = head[ponitArr[i]];
}
trace(head[ponitArr[ponitArr.length-1]])
用遍历的方法取到数组倒数第2层的引用.再动态引用就直接能操作该数值了.
评论: 0 | 引用: 0 | 查看次数: 244
发表评论
你没有权限发表评论!
上一篇
下一篇

文章来自:
Tags: 





