したがって、createImageRegionメソッドは、わずかなアルファ/不透明度を持つすべてのピクセルを無視します。
不透明度が0.5程度のピクセルもヒット検出の対象となるように、この関数をどのように作成できますか?
KineticJSを調べました。colorKeyがヒット領域に追加されますが、キーがアルファなしの六角レンチに変換されます。どうすればこれを機能させることができるのかわかりません。
ヘルプは大いに活用されています!
ここで魔法が起こります。しかし、0以外のあらゆる種類のトランスパナシーでピクセルを含める方法がわかりません
createImageHitRegion: function (callback) {
var canvas = new Kinetic.Canvas(this.attrs.width, this.attrs.height);
var context = canvas.getContext();
context.drawImage(this.attrs.image, 0, 0);
try {
var imageData = context.getImageData(0, 0, canvas.getWidth(), canvas.getHeight());
var data = imageData.data;
var rgbColorKey = Kinetic.Type._hexToRgb(this.colorKey);
// replace non transparent pixels with color key
for (var i = 0, n = data.length; i < n; i += 4) {
data[i] = rgbColorKey.r;
data[i + 1] = rgbColorKey.g;
data[i + 2] = rgbColorKey.b;
// i+3 is alpha (the fourth element)
}
var that = this;
Kinetic.Type._getImage(imageData, function (imageObj) {
that.imageHitRegion = imageObj;
if (callback) {
callback();
}
});
}
catch (e) {
Kinetic.Global.warn('Unable to create image hit region. ' + e.message);
}
}
iを含めると:data [i + 3] = 255(rgbColorKey.a)が存在しない場合、どのimageeventも機能しなくなります