Macromedia Flash非公式テクニカルノート
8進数はサポートされているのか
ID: FN0109005 |
Product: Flash |
Platform: All
Version: 5.0
1. 8進数と16進数
ActionScriptでの8進数や16進数の一般的なサポートについて、『ActionScriptリファレンスガイド』に明確な記述は見当たらないようです。ただ、「ActionScript辞書」のColorオブジェクトで後者が、'parseInt'関数では両者とも、引数として使用されています。また、実際「0x」で始まる数値は、16進数として扱われます。
例
trace(0x10);
//出力ウィンドウの結果
16
2. 8進数のサポート
Colin
Moock『ActionScript: The Definitive Guide』(O'REILLY)は、16進数だけでなく、8進数もActionScriptでサポートされると述べています(p.70)。ところが、「0」で始まる数値は、8と9以外0に変換されてしまうようです(Flash
Player 5.0r30/41/42)。数値に8か9が含まれていると、その桁以降が10進数としてそのまま扱われます。
例
trace([012, 019, 091]);
//出力ウィンドウの結果
0,9,91
8進数にない8と9が含まれると結果が異なることは、8進数のサポートが本来意図されていたものであることを推測させます。そのサポートに、現行では問題があると考えられます。
3. 8進数の処理
8進数を正しく扱うには、'parseInt'関数の引数に値をストリングとして与える方法が確実でしょう。
例
trace(parseInt("012"));
//出力ウィンドウの結果
10
_____
作成者: 野中文雄
協力者: Ginga Baba
作成日: 2001年9月7日
© 2001 and beyond Fumio Nonaka All rights reserved.
|