我對JavaScript比較陌生,遇到了一些問題,希望能幫到您。我正在使用畫布創建各種動畫。從另一個內部調用函數 - javascript
我有一個被按下相關按鈕時調用的函數:
//for starting the animation
startSim.onclick = function(){
//obtain speed value from the control panel.
var speed = 10000/(new Number(speedControl.value));
//stuff
//animation process
object.animate('top', '+='+canvas.height,{
duration: speed,
abort: function(){
var returnedBool;
//Pause is pressed, simulation pauses
if(pause){
//stuff
}
//restart required
if(restart){
//stuff
}
//option here to save data?
return returnedBool;
},//end abort callback
onChange: canvas.renderAll.bind(canvas),
onComplete: function(){
//stuff
}
});//end animate callback
};
我想要做的就是調用某些其他功能,而上面的動畫是活動的。
我知道我是如何使用Java或C++來做到這一點,但我似乎無法調用該函數。
我有一個顯示面板應該輸出各種信息 - 隨着動畫完成變量將會改變,我希望它們在屏幕上輸出並在更改時更新。
我用一個簡單的功能測試:
function updateInfoPanel(testSpeed){
var test = document.getElementById('currentSpeed');
test.innerHTML = test.innerHTML + testSpeed;
}
我想我需要調用這個主動畫循環,如果我把它稱爲它的罰款,但很明顯,只顯示一次變化之前。有人能告訴我我要去哪裏嗎?
我也有一個基本的碰撞檢測功能,但不在animate循環內,我認爲這些問題是相關的。
非常感謝您的幫助。
我刪除了不必要的代碼部分以節省空間。
所以我只是試圖用功能的onChange的結果:
onChange: function(){
canvas.renderAll.bind(canvas);
updateInfoPanel(speed);
},
這不存在語法錯誤,但雖然速度變量確實更新的信息面板中的動畫沒有不散運行很快。 :(
我可能會誤解,但你可以簡單地把你的更新函數放在'onChange'事件嗎? – Robb
Hi @Robb,我試過了,但它似乎並不喜歡它。期待冒號,但我不能給它一個 – null
@Robb - 你好,再次提問,感覺就像我越來越接近 – null