如果你想後,您旋轉它,然後保持相機的同時旋轉:
1.請緊記AFRAME被認爲是爲VR,移動相機多用戶希望它可能會導致嚴重的頭痛。
2.我還沒有看到任何現成的組件,只是供討論,所以如果你還是想做到這一點,我有幾個觀點:
一)廉價版,在那裏你包裹在<e-entity>
您的相機,並作出其中有<a-animation>
。給它一個2000的持續時間,一個開始的事件,和一些不錯的寬鬆。檢查出documentation。然後製作一個組件,它將檢查您的相機的旋轉像這樣:
AFRAME.registerComponent('camera-check', {
init: function() {
var rotation, newRotation;
camera = document.querySelector('a-camera');
camera.addEventListener('componentchanged', function(evt) {
if (evt.detail.name === 'rotation') {
// here You have your new rotation reference in evt.detail.newData
// and Your old rotation reference in evt.detail.oldData
rotation = newData-oldData;
if(rotation>0){
newRotation = newData;
newRotation.y +=15;
}else{
newRotation = newData;
newRotation.y -=15;
}
});
}
});
然後,監聽mouseup事件。當它被觸發時,將動畫組件的to
屬性設置爲newRotation
,併發出啓動動畫的事件。
我希望你明白了。獲取輪換率。在mouseup上找到你正在旋轉和移動更多。緩解措施應該使其順利。
創建附加實體是因爲在動畫攝影機時,可以觸發組件更改事件。您還可以進行標誌檢查,這將在動畫進行時禁用componentchanged事件。這將需要您超時2秒,或讓偵聽器檢查動畫是否結束。 (第二個選項更好,因爲您可以獲得動畫結束的確切時刻)。此外,如果您希望效果更好,您需要獲得實際旋轉速率:
1.從聽衆中檢查組件旋轉了多少,然後將newRotation.y設置得更遠或更近。
2.通過檢查tick()上的旋轉來獲取實際旋轉速率,然後獲得旋轉變化速度,並實際計算應該移動多遠。但除非你正在進行科學項目,否則不需要這麼具體。
謝謝你!是的,這是有道理的。開始工作吧。將讓你保持最新進展。 –