constructor(x, y, settings) {
		// call the constructor
		super(x, y, settings);

		// render in screen coordinates
		this.floating = true;

		// image drawing offset
		this.offset.set(x, y);

		/**
		 * Define the image scrolling ratio<br>
		 * Scrolling speed is defined by multiplying the viewport delta position by the specified ratio.
		 * Setting this vector to &lt;0.0,0.0&gt; will disable automatic scrolling.<br>
		 * To specify a value through Tiled, use one of the following format : <br>
		 * - a number, to change the value for both axis <br>
		 * - a json expression like `json:{"x":0.5,"y":0.5}` if you wish to specify a different value for both x and y
		 * @type {Vector2d}
		 * @default <1.0,1.0>
		 */
		this.ratio = vector2dPool.get(1.0, 1.0);

		if (typeof settings.ratio !== "undefined") {
			// little hack for backward compatiblity
			if (stringUtil.isNumeric(settings.ratio)) {
				this.ratio.set(settings.ratio, +settings.ratio);
			} /* vector */ else {
				this.ratio.setV(settings.ratio);
			}
		}

		if (typeof settings.anchorPoint === "undefined") {
			this.anchorPoint.set(0, 0);
		} else {
			if (typeof settings.anchorPoint === "number") {
				this.anchorPoint.set(settings.anchorPoint, settings.anchorPoint);
			} /* vector */ else {
				this.anchorPoint.set(settings.anchorPoint.x, settings.anchorPoint.y);
			}
		}

		this.repeat = settings.repeat || "repeat";

		// on context lost, all previous textures are destroyed
		this.boundCreatePattern = this.createPattern.bind(this);
		eventEmitter.addListener(ONCONTEXT_RESTORED, this.boundCreatePattern);
	}
@param {number} x - x coordinate
@param {number} y - y coordinate
@param {object} settings - ImageLayer properties
@param {HTMLImageElement|HTMLCanvasElement|string} settings.image - Image reference. See {@link loader.getImage}
@param {string} [settings.name="me.ImageLayer"] - layer name
@param {number} [settings.z=0] - z-index position
@param {number|Vector2d} [settings.ratio=1.0] - Scrolling ratio to be applied. See {@link ImageLayer#ratio}
@param {"repeat"|"repeat-x"|"repeat-y"|"no-repeat"} [settings.repeat="repeat"] - define if and how an Image Layer should be repeated. See {@link ImageLayer#repeat}
@param {number|Vector2d} [settings.anchorPoint=<0.0,0.0>] - Define how the image is anchored to the viewport bound. By default, its upper-left corner is anchored to the viewport bounds upper left corner.
@example
// create a repetitive background pattern on the X axis using the citycloud image asset
me.game.world.addChild(new me.ImageLayer(0, 0, {
    image:"citycloud",
    repeat :"repeat-x"
}), 1);