2017-07-07 21 views
0

私は、位置やその他の値を更新するたびに、添付されたコンポーネントの更新が発生すると私はすべての位置変更に対して更新を起動しようとしています。ドキュメントがロードされたときに更新はフレームコンポーネント内で実行されていません

 AFRAME.registerComponent('checking', { 
      init: function(){ 
      console.log("initialized"); 
      }, 
      update: function(){ 
      console.log("valueUpdated: "+this.el.id); 
      }, 
      tick: function(){ 

      } 
     }); 

更新initで一度解雇されているが、私はマニュアルをobj.setAttribute("position","4 6 7"); ACCのようなコンソールからこれをやっているとき、それは起こるべきではない - が:

この

は、コンポーネントですそうか、私はいくつかの非常に基本的な間違いをしていますか?

ありがとう...

答えて

1

私はあなたがエンティティとコンポーネントを混同していると思います。エンティティはコンテナであり、動作と外観はコンポーネントを介して定義されます。
そのため、setAttribute( 'checking'、 'newValue')などのように、コンポーネントを変更するときに、更新機能が最初から起動しています。


あなたがあなたの小切手いずれかの方法で行うことができます:「componentChanged」イベントのリスナーを含む

を:

this.el.addEventListener('componentChanged',function(e){ 
     if(e.detail.name==='position'){ 
      console.log(e.detail.newData); 
     } 
    }); 

位置がダニに変更された場合はチェックしますが、それは非常にinneficientようだ:

init(){ 
    this.pos = this.el.getAttribute('position'); 
    } 
    tick: function(){ 
    if(this.el.getAttribute('position') != this.pos){ 
     this.pos = this.el.getAttribute('position'); 
    } 
    } 
+0

ああ...それを持って.....ありがとうアダム – user287332

関連する問題