1

ここに問題があります:

私はキャンバスを持っており、クリックすることでキャンバスに「ポップ」できる4つの画像(将来的にはさらに多くなりますが、テスト用に4つ...とにかく問題ありません)があります。

各画像は、キャンバスに複数回表示できます。

これまでのところ、ポップは正常に機能しており、画像はドラッグ可能です...しかし、キャンバスに追加する最後の画像しか選択できないため、サイズ変更やzIndex関数を追加することはできません。

理想的な世界では、画像をクリック/ドラッグしてキャンバスの上に置き、ちょっと「選択」して、サイズ変更機能を画像に接続できるようにしたいと思います。

しかし、画像の配列では、ドラッグされたアイテムを適切に識別できず、セレクターを使用できません(または使用できません)。

ありがとうございました。

編集:いくつかのコード

var imgCpt = 0;
var image = [];
function addDetails(img)    {
imgCpt++;

var imageObj = new Image();
imageObj.onload = function() {
image[imgCpt] = new Kinetic.Image({
x: 0,
y: 0,
image: imageObj,
draggable: true,
id:image[imgCpt]
});

image[imgCpt].setX((stage.getWidth()/2) - (image[imgCpt].getWidth()/2));   
image[imgCpt].setY((stage.getHeight()/2) - (image[imgCpt].getHeight()/2));


eval(image[imgCpt]).on('click', function() {
alert(eval(imgCpt));
});

layer.add(image[imgCpt]);
stage.add(layer);                           
};

imageObj.src = 'uploads/'+img;
}

私はすでにさまざまな解決策を試しました:複数のレイヤー、画像の代わりにそれに作用する、画像の代わりに画像で満たされた形状を操作する、しかしそれは常に同じ問題です:関係する要素のIDを取得できません(最後の挿入要素のIDの代わりに)

このバージョンは配列で動作しますが、私はyersterdayでeval()を使用してイメージIDを作成しようとしました。それ以上の成功なしに。

ご協力ありがとうございました

EDIT²:申し訳ありませんが、純粋なKineticJS関連よりもJS関連だと思っていても、この点についてサポートをいただければ幸いです。ありがとうございました。

4

1 に答える 1

0

OKみんな、問題を解決しました:

eval("image["+imgCpt+"].on('click', function() {alert("+imgCpt+");});");

それ以外の :

eval(image[imgCpt]).on('click', function() {
alert(eval(imgCpt));
});

次に、クリックの背後にある真のアクションを設定します。

助けてくれてありがとう;)

于 2013-01-31T22:59:25.263 に答える