Adobe Animate HTML5中if语句控制影片剪辑可见性异常原因咨询
问题分析与解决
你的代码报错核心是语法错误,以下是具体问题和修复方案:
1. 代码块包裹错误
if/else if语句的代码块必须用大括号{}包裹,你用了圆括号(),这属于语法错误,JavaScript会直接报错。
2. 属性名的空格问题
代码里this.black_mc. visible这种写法,属性名visible前面多了空格,会被解析成无效语法,必须去掉空格,写成this.black_mc.visible。
修复后的完整代码
this.black_sw.addEventListener("click", fl_ClickToHide.bind(this)); function fl_ClickToHide() { if (this.black_mc.visible === true) { this.black_mc.visible = false; this.redball.visible = true; } else if (this.black_mc.visible === false) { this.black_mc.visible = true; this.redball.visible = false; } }
额外优化建议
其实可以不用显式判断true/false,直接对visible取反,代码更简洁:
this.black_sw.addEventListener("click", fl_ClickToHide.bind(this)); function fl_ClickToHide() { // 取反black_mc的可见性 this.black_mc.visible = !this.black_mc.visible; // redball的可见性和black_mc相反 this.redball.visible = !this.black_mc.visible; }
内容的提问来源于stack exchange,提问作者Peterw
相关产品推荐
相关产品推荐

