Adobe Animate CC,HTML5 Canvas-将实例名称捕获为动态文本?

时间:2019-06-07 23:02:30

标签: variables html5-canvas createjs adobe-animate

原谅我,我不是一个合适的JS程序员,但我仍然会想起很多概念。

假设其中一个具有一组类似的2帧/ 2状态翻转影片剪辑,它们嵌套在一个包含剪辑的实例名称中,该剪辑具有实例名称“ Map”。每个剪辑均使用4位数ID编号,后跟“ s”作为实例名称,例如“ s6566”。

然后假设一个人想要捕获相应的实例名称以定义一个变量,这样一个小脚本可以允许这些影片剪辑中的每一个在翻转/活动状态(在本例中为“ 6566”)上跨多个显示它们的ID。文件。

最终,我将成千上万个这样的小片段散布在几十个文档中,而且,抓住每个符号的实例名称/ ID似乎很简单,从一开始就删除“ s”(因为实例名称可以t以数字开头),并将该ID作为动态文本应用于其相应符号的翻转/有效框架。

是否有实现此目标的方法?我希望我能在其中包含一些示例代码,但是我不确定如何开始,除了由此提出问题。尚未能够找到有关捕获实例名称的任何信息,而且我不确定是否可行。谢谢。

1 个答案:

答案 0 :(得分:0)

MovieClips的子代使用实例名称存储为引用。您可以在导出的库JS文件中查看格式。请注意,Animate将转换某些实例名称以删除不支持的字符或重复项。

这里有一些未经测试的伪代码可以帮助您入门。

// You can iterate a MovieClip and get the names
for (var name in someMovieClip) {
    // Ignore anything not starting with an s
    if (name.substr(0,1) != "s") { continue; }

    // remove the s
    var newName = name.substr(1);

    // The child can be accessed using bracket-access with its name
    var child = someMovieClip[name];

    // The child should have text instances if it is set up how you described
    // Set the text to the newName
    child.textInstance.text = newName
}

进行更改后,请不要忘记更新舞台。如果您已经设置了股票代码来执行此操作,则应该立即更新。

我希望能有所帮助。如果您有后续问题,请告诉我。