MX.Image = MX.Object3D.extend({ init: function (ops) { ops = $.extend({}, { src: undefined, }, ops || {}) var layer = this.layer = new MX.Object3D() layer.width = 0 layer.height = 0 this.add(layer) if (ops.src) this.loadTexture(ops) this.children.forEach(function (c, i) { if (ops.texture) { } else if (ops.classname) { c.el.classList.add(ops.classname) } else { } c.el.style.backgroundRepeat = 'no-repeat' }) this.dirty = true this.updateChildren = true this.update() }, loadTexture: function(ops){ var layer = this.children[0] var image = new Image() image.onload = function(){ layer.width = image.naturalWidth layer.height = image.naturalHeight layer.x = ops.x || 0 layer.y = ops.y || 0 layer.z = ops.z || 0 layer.scale = ops.scale || 1 layer.el.style.backgroundImage = "url(" + image.src + ")" $(layer.el).addClass('image') layer.dirty = true layer.update() } image.src = ops.src; } })