「G.objects.map().on()」は、データを置いたブラウザのみがトリガーされます。他のブラウザはそれに関するイベントを取得できませんでした。
オレンジ色のボタンをクリックすると、ランダム オブジェクトが作成されます。しかし、それは1つのブラウザで動作します。同期されていません。このgifをチェックしてください。
別のノードの .on() のような位置が適切にトリガーされます。
銃のバージョン 0.2019.627。
ここに私のコードがあります。
パッティングデータの一部
let object = {
id: S.myAlias + Math.floor( Math.random()*1000 ).toString(16),
parent: 'scene',
tagName: 'a-entity',
attributes: {
geometry : {
primitive: geometries[Math.floor(Math.random()* geometries.length)] // random geometries
},
color: '#'+toHex(rgb),
position : {
x : Math.random() * 16 - 8,
y : Math.random() * 10 - 3,
z : Math.random() * 25 - 25,
},
rotation: {
x : Math.random() * 2 * Math.PI,
y : Math.random() * 2 * Math.PI,
z : Math.random() * 2 * Math.PI
},
'transform-controls' : { activated: false }
}
};
G.objects.get( object.id ).put(object); // put!!!!!
G.scene.get('children').set( G.objects.get(object.id) )
サブスクライブデータの一部
G.objects.map().on( function createEntity(data, key){
console.log('come on!!!!!!');
let el = checkElement(key);
this.get('attributes').once().map().once(function updateAttributes(data, key){
// el.setAttribute(key, data);
switch (key) {
case 'geometry': this.once( updateGeometry );
break;
case 'color': this.once( updateColor );
break;
case 'transform-controls': this.once( updateTransformControls );
break;
default: el.setAttribute(key, data);
}
});
});
接続されているすべてのブラウザにそのイベントを取得させるにはどうすればよいですか?