2014-07-10 12 views
8

मैं कैनवास बना रहा हूं (मैं इस कैनवास के लिए नया हूं) ऑब्जेक्ट सिलेंडर बना रहा हूं यह ठीक काम कर रहा है क्रोम & फ़ायरफ़ॉक्स पर काम करता है लेकिन जब मैं एक ही फाइल को IE9 में खोलता हूं।त्रुटि अनुरोध किसी भी वैकल्पिक समाधान

मैं 'requestAnimationFrame' के रूप में त्रुटि हो रही है अपरिभाषित

जब मैं त्रुटि यह कहता है requestAniationFrame IE9 पर काम नहीं करेगा गूगल है।

क्या कोई भी शरीर मेरी मदद कर सकता है क्या हमारे पास इसे हल करने का कोई वैकल्पिक तरीका है।

और यहाँ मेरे कोड

var canvas = document.getElementById("canvas"); 
     var context = canvas.getContext("2d"); 

     var degreeAngle = 0; 
     requestAnimationFrame(animate); 

     function drawRotatedCylinder(x, y, w, h, degreeAngle) { 
      context.save(); 
      context.translate(x + w/10, y + h/10); 
      context.rotate(degreeAngle * Math.PI/180); 
      drawCylinder(-w/10, -h/10, w, h); 
      context.restore(); 
     } 
function animate() { 
     //requestAnimationFrame(animate); 
     context.clearRect(0, 0, canvas.width, canvas.height); 
     drawRotatedCylinder(100, 100, 180, 180, degreeAngle++); 
} 

कृपया मुझे ऊपर समाधान के लिए मदद

धन्यवाद सादर महा

+1

https://gist.github.com/paulirish/1579671 – adeneo

+0

आप वास्तव में इसके लिए खोज नहीं की थी तुमने किया ?! –

+0

हाय @ ए। वोल्फ मैंने वास्तव में इसे खोजा लेकिन मैं समाधान – user3820621

उत्तर

20

इरिक मोलर एक मजबूत polyfill कि पॉल आयरिश अब अपने blog post about requestAnimationFrame में होस्ट करता है विकसित की है। आप इस कोड का उपयोग, तो आप काफी किसी भी पारदर्शी रूप से ब्राउज़र में requestAnimationFrame उपयोग कर सकते हैं:

(function() { 
    var lastTime = 0; 
    var vendors = ['webkit', 'moz']; 
    for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { 
     window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame']; 
     window.cancelAnimationFrame = 
      window[vendors[x]+'CancelAnimationFrame'] || window[vendors[x]+'CancelRequestAnimationFrame']; 
    } 

    if (!window.requestAnimationFrame) 
     window.requestAnimationFrame = function(callback, element) { 
      var currTime = new Date().getTime(); 
      var timeToCall = Math.max(0, 16 - (currTime - lastTime)); 
      var id = window.setTimeout(function() { callback(currTime + timeToCall); }, 
       timeToCall); 
      lastTime = currTime + timeToCall; 
      return id; 
     }; 

    if (!window.cancelAnimationFrame) 
     window.cancelAnimationFrame = function(id) { 
      clearTimeout(id); 
     }; 
}()); 
+0

धन्यवाद @ user1449556 यह ठीक काम कर रहा था – user3820621

+0

आपका स्वागत है;) – user1449556

+0

समस्या हल हो गई है मैंने अपने कोड से पहले उपरोक्त जावास्क्रिप्ट रखा है यह ठीक काम कर रहा है यानी 9 सभी के लिए धन्यवाद – user3820621

संबंधित मुद्दे