0

長方形のクリックイベントをgraphitiに登録したい。私はこれを試しました

var innerrect = new graphiti.shape.basic.Rectangle(100, 20);
        innerrect.onClick = function(){
            alert("Hi");
        }
rect.addFigure(innerrect , new graphiti.layout.locator.BottomLocator(rect));
canvas.addFigure(rect, 100, 100);   

しかし、動作しません。plzは私にそれを隣接させることを知らせますか?

4

1 に答える 1

0

このようにRectangleから継承した独自の形状を作成します。これは最初の瞬間は少し不快に見えますが、通常は多くのカスタムコードを使用して独自の形状を記述します。この場合、新しいクラスを作成するのは1回限りの作業です。

例は良い出発点であることを覚えておいてください。クリックイベントリスナーの例もあります。

MyFigure = graphiti.shape.basic.Rectangle.extend({

NAME : "MyFigure",

init : function()
{
    this._super();

    this.createPort("output");
    this.setDimension(30,30);
    this.setResizeable(false);

    this.value=false;

    this.colors={};
    this.colors[true]="#00f000";
    this.colors[false]="#f00000";

    this.setBackgroundColor(this.colors[this.value]);
},

/**
 * @method
 * Change the color and the internal value of the figure.
 * Post the new value to related input ports.
 * 
 */
onClick: function(){
    this.value = !this.value;
    this.setBackgroundColor(this.colors[this.value]);

    var connections = this.getOutputPort(0).getConnections();
    connections.each($.proxy(function(i, conn){
        var targetPort = conn.getTarget();
        targetPort.setValue(this.value);
        conn.setColor(this.getBackgroundColor());
    },this));
}

});
于 2012-07-09T10:15:37.753 に答える