-1

ムービークリップを再生する 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.visible = false; //hide button for no replays
    disableAll();
}

disableAll();キャンバス上の各ボタンに対して次のことを行います。

if(exportRoot.btn_receive.visible == true){
    exportRoot.btn_receive.disabled = true;
}

これを適切に使用する方法を理解するのに苦労しています。インタラクションを実行すると、ボタンを無効にしたはずなのに、まだボタンをクリックできますか?

このデモは GitHub でサウンドをロードしませんが、それ以外の場合は動作します。ここをクリックしてご覧ください。

4

2 に答える 2

1

私は同じ問題を抱えていたので、別の方法があります:

次のように、eventListener クリックを削除しようとすることができます。

if(!exportRoot.btn_receive.hasEventListener("click")){
    exportRoot.btn_receive.removeEventListener("click", cook_clickHandler);
}

これを再度有効にしたい場合は、eventListener.

于 2016-12-02T19:11:21.193 に答える
1

The disabled attribute is a Boolean attribute. That means that just the presence of it is enough to cause the element to become disabled. It makes no difference what you set the value to. You need to remove the attribute from the element to remove the disabled effect.

Removing the event listener treats the symptom, it doesn't get to the heart of the issue.

Also (FYI), the visibility property gets values of "visible" or "hidden", not true or false.

Here is a simple example of how to apply and disable (no pun intended) the disabled attribute:

btnToggle.addEventListener("click", function(){

  var elems = document.querySelectorAll(".disableEnable");
  
  // Loop through each element in the class
  elems.forEach(function(element){
    
    // Check to see if the first element has the disabled attribute
    // the value of the attribute doesn't matter. If the attribute
    // is present, the element is currently disabled.
    if(element.getAttribute("disabled")){
      
      // Element is disabled, so enabled it by removing
      // the attribute (not by setting a value)
      element.removeAttribute("disabled");
    } else {
      // Element is enabled, so disable it by adding the disabled
      // attribute. Again, the value doesn't matter, but convention
      // says that we set a value of "disabled" to convey that it is
      // a boolean attribute.
      element.setAttribute("disabled", "disabled");
    }
                           
  });
    
});
<button id="btnToggle">Disable / Enable</button>

<button class="disableEnable">Test Button</button>
<input class="disableEnable">
<input type="text" class="disableEnable">

于 2016-12-02T19:20:28.283 に答える