I’m writing a script in JSFL for Flash CS5, and I’m trying to get a list of layers off the main timeline. I’m getting the timeline, then looping through it all with a for…in loop, but the objects I’m getting seem to be undefined. Here’s some test code I made:
alert(fl.getDocumentDOM().getTimeline().layers[0].name); //Returns "text1"
for(layer in fl.getDocumentDOM().getTimeline().layers) {
alert(layer.name); //Returns "undefined"
}
So, does JSFL not support for…in? That’s kinda odd, since it seems it’s just a JavaScript engine.
Whoooh there. JSFL is not just a JavaScript engine, it is bizarro world JavaScript which can be remarkably unpredictable. Don’t believe me? Not sure if this is still the case, but try
fl.getDocumentDOM().selection.push(<obj>). It didn’t work, but this did:var s = fl.getDocumentDOM().selection; s.push(<obj>) fl.getDocumentDOM().selection = s.That said, your syntax is off:
As an aside, you’re better off iterating through arrays with numeric indexes, it is clearer and faster.