2012/12/23

[JavaScript]flashcanvasでcanvasを実装

以前、読んだJavaScriptクックブックでは、explorercanvasを使ってIEでcanvasタグを実装する方法について書かれていました。

ただ、問題があって、globalCompositeOperationをサポートしておらず、代替手段を取る必要が発生しました。

そこで、ぐぐってみたところ、FlashCanvasを発見したので、そちらを試しに使ってみることにしました。

コーディングは下のようになります。

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<!--[if lt IE 9]>
<script src="FlashCanvasPro/bin/flashcanvas.js"></script>
<![endif]-->
</head>
<body>
<div id="container"></div>
<script>
jQuery(function($){
 var canvas = document.createElement('canvas');
 canvas.style.width = '200px';
 canvas.style.height = '200px';
 document.getElementById('container').appendChild(canvas);
 if (typeof FlashCanvas != "undefined") {
  FlashCanvas.initElement(canvas);
  if (canvas.getContext){
   var context = canvas.getContext('2d');
   context.strokeStyle = 'rgb(255,0,0)';
   context.fillStyle = 'rgb(255,0,0)';
   context.fillRect(20,40,50,100);
  }
 }
});
</script>
</body>
重要なのは、canvasタグを作るたびに、FlashCanvas.initElement()メソッドを実行する必要があるということ。

canvasタグをサポートしていない、IE8でも表示することができました。IE7はどうなんだろう??

しかし、IE8だけだとしてもこれは、すごいなー。

0 コメント:

コメントを投稿