使用 JSFL AS3 CS5.5 访问子/嵌套影片剪辑
Posted
技术标签:
【中文标题】使用 JSFL AS3 CS5.5 访问子/嵌套影片剪辑【英文标题】:Accessing child/nested movie clips with JSFL AS3 CS5.5 【发布时间】:2011-11-23 03:42:13 【问题描述】:如何在 jsfl 中访问影片剪辑的子项(特别是子影片剪辑)? 我已经处于实例级别 flash.documents[0].timelines[0].layers[0].frames[0].elements[0].instance 我找到了this documentation,但没有别的了。 提前致谢。
【问题讨论】:
【参考方案1】:在 JSFL 中要记住的是,舞台上的元素也是库中的项目,所以无论嵌套多少次,它仍然是库中的一个剪辑,通常这就是你想要的东西工作。
在你的情况下是:
// break up your previous path to illustrate the "timeline" point
var timeline = flash.documents[0].timelines[0];
// grab the element
var element = timeline.layers[0].frames[0].elements[0];
// get its associated library item (same instance, just a Library Item, not a stage Element)
var item = element.libraryItem;
// then grab the library item's "timeline" property
var childTimeline = item.timeline
// and you can now access any "nested" elements on it
trace(childTimeline.layers[0].frames[0].elements)
一开始这似乎违反直觉,但您很快就会习惯。考虑它的最简单方法是,基本上所有元素都是“***”,因为它们都存在于库中。
另外,fl.getDocumentDOM().getTimeline() 是获取当前文档和时间线的常用方法。
【讨论】:
不错的技术。最后一行应该是 fl.trace 吗? 如果你用 trace = fl.trace 给它起了别名,或者你正在使用 xJSFL xjsfl.com 谢谢。完全困惑为什么我在舞台上循环选择项目时无法获得selection[i].timeline
,但我可以获得library.items[i].timeline
。使用selection[i].libraryItem
正是我所需要的。
@DaveStewart 实际上,我昨天尝试安装它!我对 jQuery 的熟悉程度远胜于 JSFL 实际上 是 (不完全是 JS,不完全是 AS,也不是两者兼而有之) - 但它引发了关于其他一些命令修改的错误一些东西(这是在 CS6 中)。我找不到它突出显示的代码,所以我离开了它。但是,据我所知,JSFL 仍然可以在 Adobe Animate(!) 中使用,因此值得保留它!
10 年后,这个答案逻辑仍然是一个宝石。谢谢。以上是关于使用 JSFL AS3 CS5.5 访问子/嵌套影片剪辑的主要内容,如果未能解决你的问题,请参考以下文章