From cbd5e2411cd4df39dda75723da9c5e0153ad3331 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 9 Apr 2014 17:45:32 -0400 Subject: box-drawing example --- assets/javascripts/mx/primitives/mx.image.js | 49 ++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 assets/javascripts/mx/primitives/mx.image.js (limited to 'assets/javascripts/mx/primitives/mx.image.js') diff --git a/assets/javascripts/mx/primitives/mx.image.js b/assets/javascripts/mx/primitives/mx.image.js new file mode 100644 index 0000000..cf4446e --- /dev/null +++ b/assets/javascripts/mx/primitives/mx.image.js @@ -0,0 +1,49 @@ +MX.Image = MX.Object3D.extend({ + init: function (ops) { + + this.type = "Image" + + var layer = this + layer.width = 0 + layer.height = 0 + layer.x = ops.x || 0 + layer.y = ops.y || 0 + layer.z = ops.z || 0 + + if (ops.src) this.loadTexture(ops) + + layer.el.classList.add(ops.className) + layer.el.style.backgroundRepeat = 'no-repeat' + + this.dirty = true + this.updateChildren = true + this.update() + }, + + loadTexture: function(ops){ + var layer = this + var image = new Image() + image.onload = function(){ + layer.scale = ops.scale || 1 + layer.width = image.naturalWidth + layer.height = image.naturalHeight + layer.x = ops.x || 0 + layer.y = (ops.y || 0) + layer.scale * layer.height/2 + 1 + layer.z = ops.z || 0 + layer.rotationX = ops.rotationX || 0 + layer.rotationY = ops.rotationY || 0 + layer.rotationZ = ops.rotationZ || 0 + layer.el.style.backgroundImage = "url(" + image.src + ")" + layer.el.classList.add('image') + layer.dirty = true + layer.update() + } + image.src = ops.src; + }, + + toString: function(){ + var params = "id src width height depth x y z rotationX rotationY rotationZ scale".split(" ") + return this.__toString(params) + }, + +}) -- cgit v1.2.3-70-g09d2