我正在使用EaselJS並希望允許與ExplorerCanvas向後兼容。獲取IE8與EaselJS和ExplorerCanvas的兼容性
這應該使用下面的代碼(見here)是可能的:
createjs.createCanvas = function() { ... return canvas implementation here ... }
但是,如果我在這個函數把警報和運行代碼,功能永遠不會運行。
我該如何解決這個問題?
編輯:
這裏是我使用的代碼的一個簡化的例子:
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<script src='/Scripts/jquery-1.7.1.js'></script>
<script src="/Scripts/excanvas/excanvas.compiled.js"></script>
<script src="/Scripts/easeljs/lib/easeljs-0.5.0.min.js"></script>
<script src='/Scripts/core/jquery.mousewheel.js'></script>
<style>
canvas
{
border: 1px solid #ccc;
}
</style>
<script type='text/javascript'>
$(document).ready(function() {
// Variables
var img;
var stage;
var bmp;
// Bindings
$('#load').click(function() { initialize() }); // DELETE
// Functions
function initialize() {
img = new Image();
img.onload = imageLoadedEvent;
img.src = '/Scripts/viewer/June.jpg';
}
function imageLoadedEvent() {
var canvasElement = generateContext('testCanvas', 400, 400);
stage = new createjs.Stage('testCanvas');
bmp = new createjs.Bitmap(img);
stage.autoClear = true;
stage.addChild(bmp);
stage.update();
}
function generateContext(canvasID, width, height) {
var canvasElement = document.createElement('canvas');
if (typeof (G_vmlCanvasManager) != 'undefined')
canvasElement = G_vmlCanvasManager.initElement(canvasElement);
canvasElement.setAttribute("width", width);
canvasElement.setAttribute("height", height);
canvasElement.setAttribute("id", canvasID);
document.getElementById('viewer').appendChild(canvasElement);
}
});
</script>
</head>
<body>
<div id='viewer'>
<button id='load'>load</button>
</div>
</body>
</html>
這個例子將在瀏覽器和IE9運行作爲本地畫布元件被創建並使用。但是在IE8中它失敗了。
我能夠使用excanvas,以獲得上下文,但我堅持就如何這種情況下與easeljs關聯。任何想法如何做到這一點? –
我已更新我的答案! –