LoginSignup
9
8

More than 5 years have passed since last update.

CreateJSでcanvasに読み込んだ画像にマウスイベントを設定する方法

Last updated at Posted at 2014-07-09

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みたいな感覚で。

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8