【问题标题】:Accessing child/nested movie clips with JSFL AS3 CS5.5使用 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,但没有别的了。 提前致谢。

【问题讨论】:

    标签: flash actionscript-3 flash-cs5 jsfl flash-cs5.5


    【解决方案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 年后,这个答案逻辑仍然是一个宝石。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 2013-04-27
    • 2011-07-19
    相关资源
    最近更新 更多