I have solved this issue and I have pasted my code below. I’ve also left my original question to help people find this issue. I’m sure there are many optimizations that it could undergo (which I welcome). I felt like there wasn’t much working code for me to view for this functionality so I figured leaving my fix would help someone else. The problem I was facing was that Bitmaps could not handle Mouse Events. Though my code would still compile, no event would ever fire correctly.
I’m trying to make a minesweeper like game for my first project in OpenFL. I’ve gotten an 8 by 8 grid of images to display and I’ve gotten the cursor to change over each image like the image is clickable. I expect “Pressed” to print in the terminal every time I press any image; however, this does not happen. Nothing is printed. The picture is a 90x90 grey cube. Below is my code:
package;
import openfl.events.MouseEvent;
import openfl.Assets;
import openfl.display.Bitmap;
import openfl.display.Sprite;
import openfl.Vector;
class Main extends Sprite {
public function new () {
super ();
this.buttonMode = true;
this.mouseChildren = false;
var length = 8;
var tiledata = (Assets.getBitmapData("assets/tile.jpg"));
var tile = new haxe.ds.Vector(length);
function onClick(e:Dynamic){
trace("Pressed");
}
for(i in 0...tile.length) {
tile[i] = new haxe.ds.Vector(length);
for(o in 0...tile[i].length) {
tile[i][o] = new Bitmap(tiledata);
tile[i][o].y = i * 100;
tile[i][o].x = o * 100;
addEventListener(MouseEvent.CLICK, onClick);
addChild(tile[i][o]);
}
}
}
}