クリックイベントリスナーを別のSVGビットマップイメージに追加しようとしています。各クリックイベントは、異なる機能を実行する必要があります。ここでクリックイベントリスナーをSVGビットマップイメージに追加する
は、私のJSコードです:
<script>
var stage;
var images = [];
function init() {
stage = new createjs.Stage("kort");
addImage("/assets/images/kort.png", 0.65, 0.65, 0, 0);
addImage("/assets/images/kirke.png", 0.25, 0.25, 250, 250);
addImage("/assets/images/mølle.png", 0.4, 0.4, 335, 100);
addImage("/assets/images/skib.png", 0.25, 0.25, 30, 375);
addImage("/assets/images/hestesko.png", 0.3, 0.3, 100, 75);
console.log("Images added")
addClickEvents();
function addImage(url, scaleX, scaleY, locX, locY) {
var image = new Image();
image.src = url;
image.onload = function() { //indsæt kun billede når det er loadet
var imageBitmap = new createjs.Bitmap(image);
imageBitmap.x = locX;
imageBitmap.y = locY;
imageBitmap.scaleX = scaleX;
imageBitmap.scaleY = scaleY;
images.push(imageBitmap);
console.log("Image pushed to array");
stage.addChild(imageBitmap);
stage.update();
}
}
function addClickEvents() {
images[1].on("mousedown", function (evt) {
this.alpha = 0.1;
stage.update();
set(0, true);
});
}
}
私はこのコードを実行すると、私はエラーが表示されます。
Uncaught TypeError: Cannot read property 'on' of undefined
at addClickEvents ((index):52)
at init ((index):33)
at onload ((index):9)"
追加する前にaddClickEvents()関数を実行しているようですしたがって、配列は空であるため、未定義にイベントを追加しようとします。
実際には、非同期オンロードコールバックで画像を追加しています。あなたの分析は正しいです。 –