提交 11853e87 编写于 作者: M Mr.doob

UI.Number: Keep float intact.

上级 39fb2745
......@@ -645,6 +645,8 @@ UI.Number = function ( number ) {
}, false );
this.value = 0;
this.min = - Infinity;
this.max = Infinity;
......@@ -652,6 +654,7 @@ UI.Number = function ( number ) {
this.step = 1;
this.dom = dom;
this.setValue( number );
var changeEvent = document.createEvent( 'HTMLEvents' );
......@@ -669,7 +672,7 @@ UI.Number = function ( number ) {
distance = 0;
onMouseDownValue = parseFloat( dom.value );
onMouseDownValue = scope.value;
prevPointer = [ event.clientX, event.clientY ];
......@@ -680,17 +683,21 @@ UI.Number = function ( number ) {
function onMouseMove( event ) {
var currentValue = dom.value;
var currentValue = scope.value;
pointer = [ event.clientX, event.clientY ];
distance += ( pointer[ 0 ] - prevPointer[ 0 ] ) - ( pointer[ 1 ] - prevPointer[ 1 ] );
var number = onMouseDownValue + ( distance / ( event.shiftKey ? 5 : 50 ) ) * scope.step;
var value = onMouseDownValue + ( distance / ( event.shiftKey ? 5 : 50 ) ) * scope.step;
value = Math.min( scope.max, Math.max( scope.min, value ) );
dom.value = Math.min( scope.max, Math.max( scope.min, number ) ).toFixed( scope.precision );
if ( currentValue !== value ) {
if ( currentValue !== dom.value ) dom.dispatchEvent( changeEvent );
scope.setValue( value );
dom.dispatchEvent( changeEvent );
}
prevPointer = [ event.clientX, event.clientY ];
......@@ -724,7 +731,7 @@ UI.Number = function ( number ) {
}
dom.value = parseFloat( value );
scope.setValue( parseFloat( value ) );
}
......@@ -758,7 +765,7 @@ UI.Number.prototype.constructor = UI.Number;
UI.Number.prototype.getValue = function () {
return parseFloat( this.dom.value );
return this.value;
};
......@@ -766,6 +773,7 @@ UI.Number.prototype.setValue = function ( value ) {
if ( value !== undefined ) {
this.value = value;
this.dom.value = value.toFixed( this.precision );
}
......@@ -802,7 +810,7 @@ UI.Integer = function ( number ) {
var dom = document.createElement( 'input' );
dom.className = 'Number';
dom.value = '0.00';
dom.value = '0';
dom.addEventListener( 'keydown', function ( event ) {
......@@ -810,12 +818,15 @@ UI.Integer = function ( number ) {
}, false );
this.value = 0;
this.min = - Infinity;
this.max = Infinity;
this.step = 1;
this.dom = dom;
this.setValue( number );
var changeEvent = document.createEvent( 'HTMLEvents' );
......@@ -833,7 +844,7 @@ UI.Integer = function ( number ) {
distance = 0;
onMouseDownValue = parseFloat( dom.value );
onMouseDownValue = scope.value;
prevPointer = [ event.clientX, event.clientY ];
......@@ -844,17 +855,21 @@ UI.Integer = function ( number ) {
function onMouseMove( event ) {
var currentValue = dom.value;
var currentValue = scope.value;
pointer = [ event.clientX, event.clientY ];
distance += ( pointer[ 0 ] - prevPointer[ 0 ] ) - ( pointer[ 1 ] - prevPointer[ 1 ] );
var number = onMouseDownValue + ( distance / ( event.shiftKey ? 5 : 50 ) ) * scope.step;
var value = onMouseDownValue + ( distance / ( event.shiftKey ? 5 : 50 ) ) * scope.step;
value = Math.min( scope.max, Math.max( scope.min, value ) ) | 0;
dom.value = Math.min( scope.max, Math.max( scope.min, number ) ) | 0;
if ( currentValue !== value ) {
if ( currentValue !== dom.value ) dom.dispatchEvent( changeEvent );
scope.setValue( value );
dom.dispatchEvent( changeEvent );
}
prevPointer = [ event.clientX, event.clientY ];
......@@ -888,7 +903,7 @@ UI.Integer = function ( number ) {
}
dom.value = parseInt( value );
scope.setValue( value );
}
......@@ -922,7 +937,7 @@ UI.Integer.prototype.constructor = UI.Integer;
UI.Integer.prototype.getValue = function () {
return parseInt( this.dom.value );
return this.value;
};
......@@ -930,6 +945,7 @@ UI.Integer.prototype.setValue = function ( value ) {
if ( value !== undefined ) {
this.value = value | 0;
this.dom.value = value | 0;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册