アクション > SWF 4 アクションモデル > スタック操作

スタック操作

このセクションではスタック操作について記述します。

ActionPush

ActionPush は、 1 つ以上の値をスタックにプッシュします。

フィールド コメント
ActionPush ACTIONRECORDHEADER ActionCode = 0x96
Type UI8 0 = 文字列リテラル
1 = 浮動小数点数リテラル
次の型は SWF 5 以降で使用可能です。
2 = null
3 = undefined
4 = register
5 = Boolean
6 = double
7 = integer
8 = constant 8
9 = constant 16
String If Type = 0, STRING null 終端文字列
Float If Type = 1, FLOAT 32 bit IEEE 単精度浮動小数点数 (リトルエンディアン)
RegisterNumber If Type = 4, UI8 レジスタ数
Boolean If Type = 5, UI8 ブール値
Double If Type = 6, DOUBLE 64 bit IEEE 倍精度浮動小数点数 (リトルエンディアン)
Integer If Type = 7, UI32 32 bit 整数 (リトルエンディアン)
Constant8 If Type = 8, UI8 コンスタントプールのインデックス (インデックス < 256)
(ActionConstantPool 参照)
Constant16 If Type = 9, UI16 コンスタントプールのインデックス (インデックス >= 256)
(ActionConstantPool 参照)

ActionPush は、 1 つ以上の値をスタックに積みます。 Type フィールドはプッシュする値の型を指定します。 Type = 1 の場合、 32 bit IEEE 単精度浮動小数点数の値をプッシュします。 PropertyId は FLOAT でプッシュされます。 ActionGetProperty と ActionSetProperty は PropertyId を使って名前付きオブジェクトのプロパティにアクセスします。

Type = 4 の場合、レジスタ数の値がプッシュされます。 Flash Player は 4 つまでのレジスタをサポートしています。 ActionDefineFunction2 を使うことによって、 256 個までのレジスタを使うこともできます。

ActionPush の最初のフィールドの ACTIONRECORD の中の Length 値は、 ACTIONRECORD に続く Type と値の総バイトサイズを定義します。 1 つ以上の Type と値のフィールドの組が最初のフィールドに続き、これらを合計したサイズが ACTIONRECORD の Length フィールドにセットされます。

ActionPop

ActionPop は、スタックから値をポップし、スタック上の値を破棄します。

フィールド コメント
ActionPop ACTIONRECORDHEADER ActionCode = 0x17

移動

最終更新:2017年02月20日 20:58