JSFL:访问内部具有符号进行动画

时间:2019-02-02 13:03:59

标签: jsfl

我在舞台上,矩形和圆几个符号。 symbols on stage 我想进入这个圈子,并使用JSFL在它动画符号。我看到这个链接Accessing child/nested movie clips with JSFL AS3 CS5.5 并基于该我写了这个代码。

fl.outputPanel.clear();
var dom = fl.getDocumentDOM();
var tl = dom.getTimeline();
var curFrame = tl.currentFrame;
var curLayer = tl.findLayerIndex('Layer 2');

tl.setSelectedFrames(curFrame,curFrame);
dom.selection = [tl.layers[curLayer].frames[curFrame]];
//dom.enterEditMode('inPlace');

var tle = dom.timelines[0];
var elm = tle.layers[curLayer].frames[curFrame].elements[0];
var lt = elm.libraryItem;
var ctl = lt.tle;//????
fl.trace(ctl.layers[curLayer].frames[curFrame].elements);

现在,我想我一定是捆绑的东西,因为我得到这个“类型错误:CTL没有属性”。 the error message 请帮助我有关如何实现我想要的建议。预先感谢

1 个答案:

答案 0 :(得分:0)

设置var tle=dom.timelines[0];时,实际上是在说:“从现在开始,让我用tle代替dom.timelines[0]。”

因此错误消息告诉您该事物不存在:dom.timelines[0].layers[curLayer].frames[curFrame].elements[0].libraryItem.tle

这是正确的。 libraryItem是类型为[SymbolItem]的对象,SymbolItems没有名为tle的子代。尽管他们确实有一个名为timeline的孩子,但这可能是您想要的。

此外,最后一个trace语句也不会表示您期望的结果,因为您位于ctl时间轴而不是tl时间轴中。为了进行测试,您可能想从fl.trace(ctl.layers[0].frames[0].elements);

开始

参考文件在这里: https://help.adobe.com/archive/en_US/flash/cs5/flash_cs5_extending.pdf