3

drawComponent にパスを追加して重複すると、パスは追加された順に積み上げられます。各スプライトにイベント リスナーを追加して、マウスを重ねたときに色とストローク幅が変わるようにすることはできますが、重なっているパスを前面に移動するにはどうすればよいですか?

これは、色を変更するリスナーのセットです。

listeners: {
    mouseover: function(line) {
        line.setAttributes({ stroke: "red", "stroke-width": 8}, true );
    },
    mouseout: function(line) {
        line.setAttributes({ stroke: "black", "stroke-width": 4 }, true );
    }
}
4

2 に答える 2

0

わかりました、次は機能しますが、もっと良い方法があると信じなければなりません。何かを削除して追加することで、何かを前面に移動できます。ただし、それを削除すると mouse* リスナーが削除されるため、次のようにリスナーを一段高くする必要がありました (これは drawComponent プロパティを持つコンポーネント内にあります (この時点では「私」です))。

var pathout = function(line,target,opts) {
    line.setAttributes({ stroke: "blue", "stroke-width": 2 }, true );
    line.on('mouseover',pathover, this,opts);
};
var pathover = function(line,target,opts) {
    me.drawComponent.surface.remove(line,true);
    me.drawComponent.surface.add( line ).show(true);
    line.setAttributes({ stroke: "red", "stroke-width": 4}, true );
    line.on('mouseout',pathout,this,opts);

};
this.paths[pathName] = { 
    type: "path", 
    path: "M" + path.join(" L"), 
    stroke: next_color, 
    "stroke-width": 2,
    listeners: {
        mouseover: pathover,
        mouseout: pathout,
        scope: this
    }
};
于 2013-03-31T21:20:25.843 に答える