CreateJSを用いてcanvasに読み込んだ画像にマウスイベントを設定する方法です。
※今回はロールオーバーとロールアウト
javascript
window.onload = function(){
var stage = new createjs.Stage('canvas');
// マウスイベントを発生させる頻度を指定
stage.enableMouseOver();
var queue = new createjs.LoadQueue();
queue.addEventListener('complete', function(e){
var bitmap = new createjs.Bitmap(queue.getResult('image_1'));
stage.addChild(bitmap);
// カーソルをpointerに設定
bitmap.cursor = 'pointer';
// ロールオーバーイベントの設定
bitmap.addEventListener('rollover', function(e){
e.currentTarget.alpha = 0.5;
});
// ロールアウトイベントの設定
bitmap.addEventListener('rollout', function(e){
e.currentTarget.alpha = 1;
});
});
queue.loadManifest([
{id: 'image_1', src: 'images/image_1.png'}
]);
createjs.Ticker.setFPS(30);
createjs.Ticker.addEventListener('tick', function(){
stage.update();
});
}
- StageオブジェクトのenableMouseOverメソッドでマウスイベントを有効にする必要がある。また、マウスイベントを検知する頻度を引数に設定出来る。(初期値は20)
- マウスイベントのターゲットとなるオブジェクトにはcursorプロパティでカーソルの種類を設定しておく。(設定出来る種類はcssのcursorと同じ)
どうやらパフォーマンスを考えてか、デフォルトだとStageのマウスイベント検知は無効になっているようです。
マウスイベントのターゲットにはcursorを設定するクセを付けておきたいです。
※FlashでいうところのbuttonModeみたいな感覚で。