24

Fabric.js を使用してキャンバスにテキスト、画像、図形を配置しています。3 つすべてに対して 3 つの異なる編集パネルを作成しました。ユーザーがテキストを選択すると、テキストパネルを表示したい。画像と形状についても同様です。

選択したオブジェクトのタイプを識別する方法は?

4

4 に答える 4

25

canvas.getActiveObject().get('type')simmi simmiが言ったように正しいです。イベントを聞くこともできます。

function onObjectSelected(e) {
  console.log(e.target.get('type'));
}
canvas.on('object:selected', onObjectSelected);
于 2013-09-19T12:31:26.043 に答える
11

次のコードを使用してこの問題を解決しました::

  if(canvas.getActiveObject().get('type')==="text")
        {
            //Display text panel
            console.log('text panel Displayed');
            $("#Image_left_panel").css("display", "none");
            $("#shape_left_panel").css("display", "none");
            //$("#left_panel").css("display", "block");
        }
        else if(canvas.getActiveObject().get('type')==="Image")
        {
            //Display Image Panel
            console.log('Image Panel Displayed');
            $("#Image_left_panel").css("display", "block");
            $("#shape_left_panel").css("display", "none");
            $("#left_panel").css("display", "none");
        }
        else
        {

        }


        });
于 2013-09-19T11:56:02.477 に答える
10

試す isType()

選択したオブジェクトを取得するサンプル関数

function onObjectSelected(o){
    //activeObject = canvas.getActiveObject()
    activeObject = o.target;

    if(activeObject.isType('text')){
       //display text logic
    }
    else if(activeObject.isType('image')){
      //display image
    }
    else if( activeObject.isType('xyz')){
      //display shape logic
    }
}

canvas.on('object:selected', onObjectSelected);
于 2015-02-12T20:05:56.320 に答える