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 はこれにより、アクションシーケンスを前方または後方にジャンプします。

移動


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-10-27 (日) 17:36:46 (3218d)