使用 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 仍然可以在 Adob​​e Animate(!) 中使用,因此值得保留它! 10 年后,这个答案逻辑仍然是一个宝石。谢谢。

以上是关于使用 JSFL AS3 CS5.5 访问子/嵌套影片剪辑的主要内容,如果未能解决你的问题,请参考以下文章

如何访问 AS3 中的单选按钮组?

如何将对象从 windowSWF 传递到 JSFL?

通过 AS3 访问(用于导出)在 Flash 编辑器中创建的矩形的渐变

JSFL - 更改静态文本值

jsfl:访问符号以在其中设置动画

无法让 Revmob 与 Flash CC/CS5.5 一起使用