2016-11-10 5 views
1

私はソース​​からwinwheelを取得しようとしていますが、すべてセットアップしてクロムとIE 9+で正常に動作しますが、IE 8で動作させる必要があります。キャンバスがIE 8で動作するようになりましたが、私の問題はまだ解決しませんでした。IE 8ではエラー "canvasは現在のブラウザではサポートされていません"を示しています。Winwheel IE 8のキャンバス

MY HTMLのCODE:

<html> 
    <head> 
     <title>Wheel</title> 
     <link rel="stylesheet" href="main.css" type="text/css" /> 
     <script type="text/javascript" src="excanvas.js"></script> 
     <script type="text/javascript" src="Winwheel.js"></script> 
     <script src="TweenMax.min.js"></script> 
    </head> 
    <body> 
     <div align="center"> 
      <table cellpadding="0" cellspacing="0" border="0"> 
      <tr> 
       <td> 
        <div class="power_controls"> 
         <br /> 
         <br /> 
         <table class="power" cellpadding="10" cellspacing="0"> 
          <tr> 
           <th align="center">Power</th> 
          </tr> 
          <tr> 
           <td width="78" align="center" id="pw3" onClick="powerSelected(3);">High</td> 
          </tr> 
          <tr> 
           <td align="center" id="pw2" onClick="powerSelected(2);">Med</td> 
          </tr> 
          <tr> 
           <td align="center" id="pw1" onClick="powerSelected(1);">Low</td> 
          </tr> 
         </table> 
         <br /> 
         <img id="spin_button" src="spin_off.png" alt="Spin" onClick="startSpin();" /> 
        </div> 
       </td> 
       <td width="421" height="564" class="the_wheel" align="center" valign="center"> 
        <canvas id="canvas" width="420" height="420"> 
         <p style="{color: white}" align="center">Sorry, your browser doesn't support canvas. Please try another.</p> 
        </canvas> 
       </td> 
      </tr> 
     </table> 
     <script>   
      // Create new wheel object specifying the parameters at creation time. 
      var theWheel = new Winwheel({ 
       'numSegments'  : 20,     // Specify number of segments. 
       'outerRadius'  : 160,    // Set outer radius so wheel fits inside the background. 
       'drawText'   : false,    // Code drawn text can be used with segment images. 
       'textFontSize'  : 16, 
       'textOrientation' : 'curved', 
       'textAlignment'  : 'inner', 
       'textMargin'  : '90', 
       'textFontFamily' : 'monospace', 
       'textStrokeStyle' : 'black', 
       'textLineWidth'  : 3, 
       'textFillStyle'  : 'white', 
       'drawMode'   : 'segmentImage', // Must be segmentImage to draw wheel using one image per segemnt. 
       'segments'   :     // Define segments including image and text. 
       [ 
        {'image' : '1.png', 'text' : '379013000'}, 
        {'image' : '2.png', 'text' : '379067000'}, 
        {'image' : '3.png', 'text' : '379021000'}, 
        {'image' : '4.png', 'text' : 'LOST'}, 
        {'image' : '5.png', 'text' : '800041000'}, 
        {'image' : '6.png', 'text' : '389081000'}, 
        {'image' : '7.png', 'text' : '508056000'}, 
        {'image' : '8.png', 'text' : 'EARN'}, 
        {'image' : '9.png', 'text' : '389020000'}, 
        {'image' : '10.png', 'text' : 'TURN'}, 
        {'image' : '11.png', 'text' : '800042000'}, 
        {'image' : '12.png', 'text' : '389020000'}, 
        {'image' : '13.png', 'text' : '379068000'}, 
        {'image' : '14.png', 'text' : 'EARN'}, 
        {'image' : '15.png', 'text' : 'LOST'}, 
        {'image' : '16.png', 'text' : '389081000'}, 
        {'image' : '17.png', 'text' : '370180000'}, 
        {'image' : '18.png', 'text' : '700002000'}, 
        {'image' : '19.png', 'text' : '379067000'}, 
        {'image' : '20.png', 'text' : '800044000'}, 

       ], 
       'animation' :   // Specify the animation to use. 
       { 
        'type'  : 'spinToStop', 
        'duration' : 5,  // Duration in seconds. 
        'spins' : 8,  // Number of complete spins. 
        'callbackFinished' : 'alertPrize()' 
       } 
      }); 

      // Vars used by the code in this page to do power controls. 
      var wheelPower = 0; 
      var wheelSpinning = false; 

      // ------------------------------------------------------- 
      // Function to handle the onClick on the power buttons. 
      // ------------------------------------------------------- 
      function powerSelected(powerLevel) 
      { 
       // Ensure that power can't be changed while wheel is spinning. 
       if (wheelSpinning == false) 
       { 
        // Reset all to grey incase this is not the first time the user has selected the power. 
        document.getElementById('pw1').className = ""; 
        document.getElementById('pw2').className = ""; 
        document.getElementById('pw3').className = ""; 

        // Now light up all cells below-and-including the one selected by changing the class. 
        if (powerLevel >= 1) 
        { 
         document.getElementById('pw1').className = "pw1"; 
        } 

        if (powerLevel >= 2) 
        { 
         document.getElementById('pw2').className = "pw2"; 
        } 

        if (powerLevel >= 3) 
        { 
         document.getElementById('pw3').className = "pw3"; 
        } 

        // Set wheelPower var used when spin button is clicked. 
        wheelPower = powerLevel; 

        // Light up the spin button by changing it's source image and adding a clickable class to it. 
        document.getElementById('spin_button').src = "spin_on.png"; 
        document.getElementById('spin_button').className = "clickable"; 
       } 
      } 

      // ------------------------------------------------------- 
      // Click handler for spin button. 
      // ------------------------------------------------------- 
      function startSpin() 
      { 
       // Ensure that spinning can't be clicked again while already running. 
       if (wheelSpinning == false) 
       { 
        // Based on the power level selected adjust the number of spins for the wheel, the more times is has 
        // to rotate with the duration of the animation the quicker the wheel spins. 
        if (wheelPower == 1) 
        { 
         theWheel.animation.spins = 3; 
        } 
        else if (wheelPower == 2) 
        { 
         theWheel.animation.spins = 8; 
        } 
        else if (wheelPower == 3) 
        { 
         theWheel.animation.spins = 15; 
        } 

        // Disable the spin button so can't click again while wheel is spinning. 
        document.getElementById('spin_button').src  = "spin_off.png"; 
        document.getElementById('spin_button').className = ""; 

        // Begin the spin animation by calling startAnimation on the wheel object. 
        theWheel.startAnimation(); 

        // Set to true so that power can't be changed and spin button re-enabled during 
        // the current animation. The user will have to reset before spinning again. 
        wheelSpinning = true; 
       } 
      } 

      // ------------------------------------------------------- 
      // Function for reset button. 
      // ------------------------------------------------------- 
      function resetWheel() 
      { 
       theWheel.stopAnimation(false); // Stop the animation, false as param so does not call callback function. 
       theWheel.rotationAngle = 0;  // Re-set the wheel angle to 0 degrees. 
       theWheel.draw();    // Call draw to render changes to the wheel. 

       document.getElementById('pw1').className = ""; // Remove all colours from the power level indicators. 
       document.getElementById('pw2').className = ""; 
       document.getElementById('pw3').className = ""; 

       wheelSpinning = false;   // Reset to false to power buttons and spin can be clicked again. 
      } 

      // ------------------------------------------------------- 
      // Called when the spin animation has finished by the callback feature of the wheel because I specified callback in the parameters. 
      // ------------------------------------------------------- 
      function alertPrize() 
      { 
       // Get the segment indicated by the pointer on the wheel background which is at 0 degrees. 
       var winningSegment = theWheel.getIndicatedSegment(); 

       // Do basic alert of the segment text. You would probably want to do something more interesting with this information. 
       switch(winningSegment.text) 
       { 
        case "LOST": // lost 1k np 

        break; 

        case "EARN": // earn 1k np 

        break; 

        case "TURN": // do nothing 
        break; 

        default: // give item 



       } 
      } 
     </script> 
    </body> 
</html> 

ERROR表示:新しいキャンバスを読んdosent wheelwinとして

http://screencast.com/t/23WeMNBXOH8N

が、それは私には見えます。どうすれば修正できますか?事前

答えて

1

おかげで、私はそれは私がそれをやった後

<!--[if lte IE 8]><script type="text/javascript" src="themes/default/js/excanvas.js"></script><![endif]--> 

はキャンバスがInternet Explorerで正常に働いていたのインサートにより固定しまっ8.

ダウンロードリンク:

https://github.com/arv/ExplorerCanvas/blob/master/excanvas.js

フルコードサンプル:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Wheel</title> 
     <script src="https://code.jquery.com/jquery-1.9.1.js"></script> 
     <link rel="stylesheet" href="themes/default/wheel.css" type="text/css" /> 
     <!--[if lte IE 8]><script type="text/javascript" src="themes/default/js/excanvas.js"></script><![endif]--> 
     <script type="text/javascript" src="themes/default/js/Winwheel.js"></script> 
     <script src="themes/default/js/TweenMax.min.js"></script> 
    </head> 
    <body onload="initWinwheel();" oncontextmenu="return false" onselectstart="return false" ondragstart="return false" scroll="no"> 
     <div align="center"> 
      <table cellpadding="0" cellspacing="0" border="0"> 
      <tr> 
       <td> 
        <div class="power_controls"> 
         <br /> 
         <br /> 
         <table class="power" cellpadding="10" cellspacing="0"> 
          <tr> 
           <th align="center">Power</th> 
          </tr> 
          <tr> 
           <td width="78" align="center" id="pw3" onClick="powerSelected(3);">High</td> 
          </tr> 
          <tr> 
           <td align="center" id="pw2" onClick="powerSelected(2);">Med</td> 
          </tr> 
          <tr> 
           <td align="center" id="pw1" onClick="powerSelected(1);">Low</td> 
          </tr> 
         </table> 
         <br /> 
         <img id="spin_button" src="themes/default/images/wheel/spin_off.png" alt="Spin" onClick="startSpin();" /> 
        </div> 
       </td> 
       <td width="421" height="564" class="the_wheel" align="center" valign="center"> 
        <canvas id="canvas" width="420" height="420"> 
         <p style="{color: white}" align="center">Sorry, your browser doesn't support canvas. Please try another.</p> 
        </canvas> 
       </td> 
      </tr> 
     </table> 
     <script>   
      var theWheel; 

      function initWinwheel() {    
       // Create new wheel object specifying the parameters at creation time. 
       theWheel = new Winwheel({ 
        'numSegments'  : 20,     // Specify number of segments. 
        'outerRadius'  : 160,    // Set outer radius so wheel fits inside the background. 
        'drawText'   : false,    // Code drawn text can be used with segment images. 
        'textFontSize'  : 16, 
        'textOrientation' : 'curved', 
        'textAlignment'  : 'inner', 
        'textMargin'  : '90', 
        'textFontFamily' : 'monospace', 
        'textStrokeStyle' : 'black', 
        'textLineWidth'  : 3, 
        'textFillStyle'  : 'white', 
        'drawMode'   : 'segmentImage', // Must be segmentImage to draw wheel using one image per segemnt. 
        'segments'   :     // Define segments including image and text. 
        [ 
         {'image' : 'themes/default/images/wheel/1.png', 'text' : '379013000'}, 
         {'image' : 'themes/default/images/wheel/2.png', 'text' : '379067000'}, 
         {'image' : 'themes/default/images/wheel/3.png', 'text' : '379021000'}, 
         {'image' : 'themes/default/images/wheel/4.png', 'text' : 'LOST'}, 
         {'image' : 'themes/default/images/wheel/5.png', 'text' : '800041000'}, 
         {'image' : 'themes/default/images/wheel/6.png', 'text' : '389081000'}, 
         {'image' : 'themes/default/images/wheel/7.png', 'text' : '508056000'}, 
         {'image' : 'themes/default/images/wheel/8.png', 'text' : 'EARN'}, 
         {'image' : 'themes/default/images/wheel/9.png', 'text' : '389020000'}, 
         {'image' : 'themes/default/images/wheel/10.png', 'text' : 'TURN'}, 
         {'image' : 'themes/default/images/wheel/11.png', 'text' : '800042000'}, 
         {'image' : 'themes/default/images/wheel/12.png', 'text' : '389020000'}, 
         {'image' : 'themes/default/images/wheel/13.png', 'text' : '379068000'}, 
         {'image' : 'themes/default/images/wheel/14.png', 'text' : 'EARN'}, 
         {'image' : 'themes/default/images/wheel/15.png', 'text' : 'LOST'}, 
         {'image' : 'themes/default/images/wheel/16.png', 'text' : '389081000'}, 
         {'image' : 'themes/default/images/wheel/17.png', 'text' : '370180000'}, 
         {'image' : 'themes/default/images/wheel/18.png', 'text' : '700002000'}, 
         {'image' : 'themes/default/images/wheel/19.png', 'text' : '379067000'}, 
         {'image' : 'themes/default/images/wheel/20.png', 'text' : '800044000'}, 

        ], 
        'animation' :   // Specify the animation to use. 
        { 
         'type'  : 'spinToStop', 
         'duration' : 5,  // Duration in seconds. 
         'spins' : 5,  // Number of complete spins. 
         'callbackFinished' : 'alertPrize()' 
        } 
       }); 
      } 

      // Vars used by the code in this page to do power controls. 
      var wheelPower = 0; 
      var wheelSpinning = false; 

      // ------------------------------------------------------- 
      // Function to handle the onClick on the power buttons. 
      // ------------------------------------------------------- 
      function powerSelected(powerLevel) 
      { 
       // Ensure that power can't be changed while wheel is spinning. 
       if (wheelSpinning == false) 
       { 
        // Reset all to grey incase this is not the first time the user has selected the power. 
        document.getElementById('pw1').className = ""; 
        document.getElementById('pw2').className = ""; 
        document.getElementById('pw3').className = ""; 

        // Now light up all cells below-and-including the one selected by changing the class. 
        if (powerLevel >= 1) 
        { 
         document.getElementById('pw1').className = "pw1"; 
        } 

        if (powerLevel >= 2) 
        { 
         document.getElementById('pw2').className = "pw2"; 
        } 

        if (powerLevel >= 3) 
        { 
         document.getElementById('pw3').className = "pw3"; 
        } 

        // Set wheelPower var used when spin button is clicked. 
        wheelPower = powerLevel; 

        // Light up the spin button by changing it's source image and adding a clickable class to it. 
        document.getElementById('spin_button').src = "themes/default/images/wheel/spin_on.png"; 
        document.getElementById('spin_button').className = "clickable";    

       } 
      } 

      // ------------------------------------------------------- 
      // Click handler for spin button. 
      // ------------------------------------------------------- 
      function startSpin() 
      { 
       // Ensure that spinning can't be clicked again while already running. 
       if (wheelSpinning == false) 
       { 
        // Based on the power level selected adjust the number of spins for the wheel, the more times is has 
        // to rotate with the duration of the animation the quicker the wheel spins. 
        if (wheelPower == 1) 
        { 
         theWheel.animation.spins = 3; 
        } 
        else if (wheelPower == 2) 
        { 
         theWheel.animation.spins = 8; 
        } 
        else if (wheelPower == 3) 
        { 
         theWheel.animation.spins = 15; 
        } 

        // Disable the spin button so can't click again while wheel is spinning. 
        document.getElementById('spin_button').src  = "themes/default/images/wheel/spin_off.png"; 
        document.getElementById('spin_button').className = ""; 

        // Begin the spin animation by calling startAnimation on the wheel object. 
        theWheel.startAnimation(); 

        // Set to true so that power can't be changed and spin button re-enabled during 
        // the current animation. The user will have to reset before spinning again. 
        wheelSpinning = true; 

        //sendCmd2("EMPTY","-1", readCookie("CHAR")); 
       } 
      } 

      // ------------------------------------------------------- 
      // Function for reset button. 
      // ------------------------------------------------------- 
      function resetWheel() 
      { 
       theWheel.stopAnimation(false); // Stop the animation, false as param so does not call callback function. 
       theWheel.rotationAngle = 0;  // Re-set the wheel angle to 0 degrees. 
       theWheel.draw();    // Call draw to render changes to the wheel. 

       document.getElementById('pw1').className = ""; // Remove all colours from the power level indicators. 
       document.getElementById('pw2').className = ""; 
       document.getElementById('pw3').className = ""; 

       wheelSpinning = false;   // Reset to false to power buttons and spin can be clicked again. 
      } 

      // ------------------------------------------------------- 
      // Called when the spin animation has finished by the callback feature of the wheel because I specified callback in the parameters. 
      // ------------------------------------------------------- 
      function alertPrize() 
      { 
       // Get the segment indicated by the pointer on the wheel background which is at 0 degrees. 
       var winningSegment = theWheel.getIndicatedSegment(); 

       if(winningSegment.text == "") 
        return; 

       // Do basic alert of the segment text. You would probably want to do something more interesting with this information. 
       switch(winningSegment.text) 
       { 

        case "LOST": // lost 1k np 
         sendCmd("+np_give","-1000", readCookie("CHAR"));   
        break; 

        case "EARN": // earn 1k np 
         sendCmd("+np_give","1000", readCookie("CHAR")); 
        break; 

        case "TURN": // do nothing 
         sendCmd("EMPTY","0", readCookie("CHAR")); 
        break; 

        default: // give item 
         sendCmd("+give_item",winningSegment.text, readCookie("CHAR")); 

       } 

       winningSegment.text = ""; 
      } 

      function sendCmd(command, giveitem,character) 
      { 
       $.ajax({ url: 'https://titan.maxko.org/?page=async', 
       data: {cmd: command, item: giveitem, chars: character}, 
       type: 'post', 
       success: function(output) { 
        //alert(output); 
        } 
       }); 
      } 

      // Cookies 
      function createCookie(name, value, days) { 
       if (days) { 
        var date = new Date(); 
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 
        var expires = "; expires=" + date.toGMTString(); 
       } 
       else var expires = "";    

       document.cookie = name + "=" + value + expires + "; path=/"; 
      } 

      function readCookie(name) { 
       var nameEQ = name + "="; 
       var ca = document.cookie.split(';'); 
       for (var i = 0; i < ca.length; i++) { 
        var c = ca[i]; 
        while (c.charAt(0) == ' ') c = c.substring(1, c.length); 
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); 
       } 
       return null; 
      } 

      function eraseCookie(name) { 
       createCookie(name, "", -1); 
      } 

     </script> 
    </body> 
</html>