jsfl:访问符号以在其中设置动画
Posted
技术标签:
【中文标题】jsfl:访问符号以在其中设置动画【英文标题】:jsfl: accessing a symbol to animate inside it 【发布时间】:2019-06-26 20:21:58 【问题描述】:我在舞台上有几个符号,矩形和圆形。 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】:当您设置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
【讨论】:
以上是关于jsfl:访问符号以在其中设置动画的主要内容,如果未能解决你的问题,请参考以下文章