2011-02-17 75 views

回答

13

简单:

if(_myValue is Number) 
{ 
    fire(); 

}// end if 

[更新]

请记住,如果_myValueint型或uint,那么(_myValue is Number)也将等同于true。如果你想知道,如果_myValue是一个数字,是不是整数(INT)或无符号整数(UINT),换句话说,一个浮动,那么你可以简单地修改条件如下:

(_myValue is Number && !(_myValue is int) && !(_myValue is uint)) 

让我们看一个例子:

package 
{ 
    import flash.display.Sprite; 
    import flash.events.Event; 

    public class Main extends Sprite 
    { 

     public function Main():void 
     { 
      if (stage) init(); 
      else addEventListener(Event.ADDED_TO_STAGE, init); 
     } 

     private function init(e:Event = null):void 
     { 
      removeEventListener(Event.ADDED_TO_STAGE, init); 

      var number1:Object = 1; // int 
      var number2:Object = 1.1; // float 
      var number3:Object = 0x000000; // uint 

      trace(number1 is Number); // true 
      trace(number2 is Number); // true 
      trace(number3 is Number); // true 

      trace(number1 is Number && !(number1 is int) && !(number1 is uint)); // false 
      trace(number2 is Number && !(number2 is int) && !(number2 is uint)); // true 
      trace(number3 is Number && !(number3 is int) && !(number3 is uint)); // false 

     } 

    } 

} 
+0

即使_myValue被键入为int或uint,“_myValue是Number”仍然是true,typeof(_myValue)仍然是“number”。根据http:// stackoverflow。闪存将整数值存储为整数,如果数值中包含小数部分,或者它超过0x0FFFFFFF(可存储在32位原子的其余28位中的最大值),则存储为“数值”为类型描述保留3位,为符号保留1位)。另请参阅http://stackoverflow.com/a/2697151/88409和此处的测试用例:http://troyworks.com/blog/2007/12/02/as3-understanding-uint-int-number/ – Triynko 2012-08-14 17:26:24

+0

提问者希望知道_myValue是一个数字,而不是一个数字。 – Robert 2012-11-15 22:25:05

3

  • isNaN(你将要否定这一点)
  • typeof(不知道如何强类型多部作品)
  • is(其已经提到的,我又不是很确定类型有多强,持有)如果你想检查输入
4

这些方法可能有问题一个文本字段,它总是一个字符串。如果你有一个字符串“123”,检查“123”是数字,你会得到一个错误。所以Number(“123”)会真实,但是Number(“lalala”)也是如此(事件虽然结果是NaN,它会告诉你NaN是Number(true)。

要使用字符串,你可以这样做:

var s:String = "1234"; 
String(Number(s)) == String(s); 
--True 

var s:String = "lalala"; 
String(Number(s)) == String(s); 
--False 
5

如果你只是想知道,如果myvalue的是数值类型(数,INT,UINT)中的一个,您可以检查是否(_myValue is Number)作为Taurayi建议

如果也。想知道_myValue是否为数字字符串(如 “6320” 或 “5.987”),使用此:

if (!isNaN(Number(_myValue))) 
{ 
    fire(); 
} 

它使用Number(_myValue)_myValueNumber类。如果Number无法将其转换为有用的数字,它将返回NaN,因此我们使用!isNaN()来确保返回的值不是“不是数字”。

(作为它的值是不NaN只要)它将返回true为Number类型的任何变量,intuint,和包含许多的有效表示字符串。