アクション > SWF 4 アクションモデル

SWF 4 アクションモデル

SWF 4 ではアクションモデルが大幅に拡張され、式や値の評価、条件分岐、ループの機能が追加されました。 Flash Player 4 は、 SWF 4 アクションを実行するためにスタックマシンが追加されました。 SWF 4 のキーとなるアクションは ActionPush です。 このアクションを使って、1 つ以上のパラメータをスタックにプッシュします。 SWF 3 のアクションと違って、 SWF 4 ではタグに埋め込まれたパラメータを使用しません。パラメータはスタックにプッシュされ、結果をスタックからポップします。

式の評価器はスタックベースです。 計算の命令には ActionAddm ActionSubtract, ActionMultiply, ActionDivide があります。 Flash オーサリングツールは、式をスタック操作に置き換えます。 例えば 1 + x * 3 という式は、次のようなアクションの列で表現されます。

ActionPush "x"
ActionGetVariable
ActionPush "3"
ActionMultiply
ActionPush "1"
ActionAdd

この式の結果は、スタックに積まれます。

(注)
スタック上の数値を含む全てのデータは、文字列としてスタックに積まれます。
上の例では、数値の 3 と 1 が、文字列の "3" と "1" としてスタックにプッシュされます。

プログラムカウンタ

Flash Player の現在の実行ポイントはプログラムカウンタ (PC) と呼ばれます。 この PC の値は、現在実行中のアクションの次のアクションのアドレスを指します。 フロー制御には ActionJump を使い、 PC の値を入れ替えます。 これらのアクションは、アセンブラの条件分岐命令や、他の言語でよくある goto 命令に似ています。 例えば、 ActionJump は Flash Player に新しいジャンプ先をアクションシーケンスで伝えます。新しい PC の値は現在の PC からのオフセットで指定します。オフセットはプラスの方向に限らず、マイナスの値になることもありえます。 Flash Player はこれにより、アクションシーケンスを前方または後方にジャンプします。

移動

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