2010-04-05 77 views
0

我想確定一個顏色是否作爲一個可選參數提供給一個函數。爲了確定這一點,我只是寫如果(顏色){...}和提供NaN,如果我不想有一種顏色。ActionScript的黑色值是NaN

但是,看起來顏色黑色(0x000000)也等​​於NaN。我如何確定提供的顏色編號參數是否存在,如果將0x000000作爲參數傳遞,我該如何確定?

+0

檢查你的假設。 0x000000爲0不是NaN。要檢查NaN,您應該使用isNaN。另外,請注意:「0x000000」(字符串)與0x000000(代表0的十六進制文字)不同。 – 2010-04-05 04:28:33

回答

4

一些源代碼將是適當的。

這聽起來像你說的,下面是等價的:

if (NaN) {} 
if (0x000000) {} 

這是真的。我想你想:

if (isFinite(color)) {} 

Adob​​e說明:http://help.adobe.com/en_US/AS3LCR/Flash_10.0/package.html#isFinite()

+0

我不懷疑你,但爲什麼0x000000不是數字?我認爲這將等於零?我在網上搜索,看起來這是對的,但我找不到解釋。 – Sandro 2010-04-06 14:53:31

+0

它不是0 = NaN,它是在if語句中的NaN與0一樣計算爲false。 NaN有特殊的比較規則。 – drawnonward 2010-04-10 06:32:22