| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- // Texture
- UI.Texture = function ( position ) {
- UI.Element.call( this );
- var scope = this;
- this.texture = new THREE.Texture();
- this.dom = document.createElement( 'input' );
- this.dom.type = 'file';
- this.dom.style.position = position || 'relative';
- this.dom.style.marginTop = '-2px';
- this.dom.style.marginLeft = '-2px';
- this.onChangeCallback = null;
- this.dom.addEventListener( 'change', function ( event ) {
- var file = event.target.files[ 0 ];
- if ( file.type.match( 'image.*' ) ) {
- var reader = new FileReader();
- reader.addEventListener( 'load', function ( event ) {
- var image = document.createElement( 'img' );
- image.addEventListener( 'load', function( event ) {
- scope.texture.image = this;
- scope.texture.needsUpdate = true;
- if ( scope.onChangeCallback ) scope.onChangeCallback();
- }, false );
- image.src = event.target.result;
- }, false );
- reader.readAsDataURL( file );
- }
- }, false );
- return this;
- };
- UI.Texture.prototype = Object.create( UI.Element.prototype );
- UI.Texture.prototype.getValue = function () {
- return this.texture;
- };
- UI.Texture.prototype.onChange = function ( callback ) {
- this.onChangeCallback = callback;
- return this;
- };
|