Javascript 我是否使用'button.disabled=true;`不正确?
我正在尝试在Animate CC中构建一个交互,播放电影剪辑,按钮在单击后消失 当电影剪辑在主背景上播放时,我试图暂时禁用其他按钮,但效果不好 单击处理程序的代码段:Javascript 我是否使用'button.disabled=true;`不正确?,javascript,easeljs,animate-cc,Javascript,Easeljs,Animate Cc,我正在尝试在Animate CC中构建一个交互,播放电影剪辑,按钮在单击后消失 当电影剪辑在主背景上播放时,我试图暂时禁用其他按钮,但效果不好 单击处理程序的代码段: exportRoot.btn_cook.addEventListener("click", cook_clickHandler.bind(this)); function cook_clickHandler(){ exportRoot.cook.gotoAndPlay(1); //play the info clip
exportRoot.btn_cook.addEventListener("click", cook_clickHandler.bind(this));
function cook_clickHandler(){
exportRoot.cook.gotoAndPlay(1); //play the info clip
exportRoot.btn_cook.visible = false; //hide button for no replays
disableAll();
}
不幸的;对画布上的每个按钮执行以下操作:
if(exportRoot.btn_receive.visible == true){
exportRoot.btn_receive.disabled = true;
}
我在想如何正确使用它时遇到了一些困难。当我运行交互时,我仍然能够单击按钮,即使我假定禁用了它们
此演示不会在GitHub上加载声音,但它可以在其他情况下工作 我也有同样的问题,所以我有另一种方法: 您可以尝试删除eventListener单击,如下所示:
if(!exportRoot.btn_receive.hasEventListener("click")){
exportRoot.btn_receive.removeEventListener("click", cook_clickHandler);
}
如果希望再次启用此功能,请添加eventListener。禁用的属性是布尔属性。这意味着只要存在它就足以导致元素被禁用。将值设置为什么值没有区别。您需要从元素中删除属性以删除禁用的效果 删除事件侦听器会处理症状,但不会触及问题的核心 另外,visibility属性获取visible或hidden的值,而不是true或false 下面是一个简单的示例,说明如何应用和禁用禁用禁用属性的非双关语: btnToggle.addEventListenerclick,函数{ var elems=document.querySelectorAll.disableEnable; //循环遍历类中的每个元素 元素forEachfunctionelement{ //检查第一个元素是否具有disabled属性 //属性的值无关紧要。如果属性 //如果存在,则元素当前处于禁用状态。 ifelement.getAttributedisabled{ //元素已禁用,因此通过删除它来启用它 //属性不是通过设置值来创建的 element.RemoveAttributed已禁用; }否则{ //元素已启用,因此通过添加禁用的 //属性。同样,值并不重要,但与约定无关 //表示我们设置了一个值disabled来表示它是 //布尔属性。 element.setAttributedisabled,已禁用; } }; }; 禁用/启用 测试按钮
我无法用这个简化的例子重现这个问题:戳URL时,必须在问题本身中提供一个!看起来你的按钮不是按钮,所以disabled属性是没有意义的。@Quentin这是一个大文件,开头应该有几秒钟的音频,所以按钮在那里,它们一点也不出现在屏幕上:很抱歉。我应该提一下。我不知道为什么会发生错误。这可能是因为它是动画cc。无论出于什么原因,当我在按钮上播放一个movieclip时,它仍然允许您单击按钮。另外,也许可以尝试一个图像按钮?这些被分类为动画cc上的按钮,它们有向上状态、向下状态和过度状态。。。那么,它们不是按钮吗?这在动画cc中仍然有效吗?它使用了一个createjsapi,这似乎不同于常规javascript。我从文档中获得了可见性,这似乎是最好的解决方案,因为我在easeljs文档中找不到禁用的属性。我想我最初使用它是因为javascript确实禁用了?谢谢