如何通过jQuery及HTML按钮修改Adobe Animate中的动态文本?
解决Adobe Animate HTML5动画中文本修改的问题
没问题,我来帮你搞定这个需求。你需要做的就是确保能正确定位到Animate生成的文本对象,然后在按钮触发的函数里修改它的text属性就行,具体步骤如下:
1. 确认文本对象的可访问性
首先,你在Animate生成的JS文件里给文本对象设置了name属性为"name",这一步做得很到位——这意味着我们可以通过动画的根节点exportRoot直接定位到它。从你的代码看this.name.parent = this;,只要这个this最终属于exportRoot的子层级,后续就能顺利获取到文本对象。
2. 修改你的start函数
更新你的启动函数,让它同时完成启动动画和修改文本的操作。直接通过exportRoot.getChildByName("name")拿到文本对象,再修改它的text属性即可:
function start() { // 启动动画播放 exportRoot.gotoAndPlay(); // 获取文本对象并修改内容 const textElement = exportRoot.getChildByName("name"); if (textElement) { textElement.text = "This is the text you want to get"; // 可选:之前你把文本alpha设为0了,这里可以改成1让它显示出来 textElement.alpha = 1; } }
3. 确保HTML按钮能正确调用函数
在你的HTML文件里,要保证start函数处于全局作用域能被按钮访问到。如果你的start函数写在单独的JS文件里,记得把这个JS文件放在Animate生成的JS文件之后加载,这样exportRoot已经初始化完成了。示例按钮代码:
<button onclick="start()">启动动画并修改文本</button>
额外提示
- 如果找不到
exportRoot,可以检查Animate生成的HTML文件里的全局变量,Animate通常会把动画实例挂载到全局,比如默认的容器对应的实例,或者你可以在Animate的发布设置里确认全局命名空间。 - 要是你想在动画播放过程中随时修改文本,不用只局限在启动时,可以把修改文本的逻辑单独抽成一个函数,比如
updateText(newText),然后按钮直接调用这个函数就行。
内容的提问来源于stack exchange,提问作者Dunkej
相关产品推荐
相关产品推荐

