javascript - JSFL for...in 循环似乎不起作用

标签 javascript flash for-loop jsfl

我正在 JSFL 中为 Flash CS5 编写一个脚本,并且我正在尝试获取主时间轴之外的图层列表。我正在获取时间线,然后使用 for...in 循环遍历所有内容,但我获取的对象似乎未定义。这是我编写的一些测试代码:

alert(fl.getDocumentDOM().getTimeline().layers[0].name); //Returns "text1"

for(layer in fl.getDocumentDOM().getTimeline().layers) {
    alert(layer.name); //Returns "undefined"
}

那么,JSFL 不支持...in 吗?这有点奇怪,因为它看起来只是一个 JavaScript 引擎。

最佳答案

哇哦。 JSFL 不仅仅是一个 JavaScript 引擎,它还是一个非常难以预测的奇怪的 JavaScript 世界。不相信我?不确定情况是否仍然如此,但请尝试 fl.getDocumentDOM().selection.push(<obj>) 。它不起作用,但这样做了:var s = fl.getDocumentDOM().selection; s.push(<obj>) fl.getDocumentDOM().selection = s .

也就是说,你的语法已经关闭:

var layers = fl.getDocumentDOM().getTimeline().layers;
// include 'var' it's good taste
for(var layer in layers) {
    // for... in iterates the KEYS, so you actually have to do a lookup
    alert(layers[layer].name);
}

顺便说一句,您最好迭代具有数字索引的数组,这样更清晰、更快。

关于javascript - JSFL for...in 循环似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6632389/

相关文章:

javascript - 如何将文本放回文本区域,该文本保存在 session 中并带有换行符。

javascript - 位置 : Fixed is disabling my scroller in IE7

javascript - 如何测试我的 Angular 登录表单是否完全覆盖?无法读取未定义的属性 'subscribe'

java - 是否存在针对 Java、ActionScript (Flash) 的 MSNP 实现?

Javascript ' Array ' 和 ' Loop ' "variable[i] "如何成为条件

javascript - 链接 jquery 追加

actionscript-3 - 奇怪的Flash编译器错误

apache-flex - 如何在不使用任何 html 的情况下将参数发送到 swf?

Javascript:为每个分号分隔的子字符串获取第一个数字子字符串

objective-c - GCD 和 for 循环