« Flash: 複数要素のPush | メイン | FlashLite: SHA1計算 »

Flash: 文字列長

Flashのアクションスクリプトのソースコードの中に書ける文字列の最大長はいくつでしょうか。
答えは、65533です。

これは、SWFでスタックに値をPushするときに指定できるデータ長がunsigned shortであることが主な理由だと思われます。
たとえば、以下のようなコードで、長さ3の文字列"ABC"をスタックに積むことができます。

96 05 00 00 41 42 43 00

文字列長は3ですが、型情報(00:文字列)と区切り文字(最後の00)を含むのでPushするデータの長さは3+2=5になります(05 00の部分)。
データ長に指定できる値は0xFFFF = 65535までですから、65535から2を引いた65533文字までがpush可能であるということになります。

これはあくまでSWFに直接書ける文字列の最大長と言うことであって、文字列の連結などを行えば、さらに長い文字列を扱うことはできます。

トラックバック

このエントリーのトラックバックURL:
http://labs.cybozu.co.jp/cgi-bin/mt-admin/mt-tbp.cgi/1071

コメントを投稿