SWF 3 のアクションモデルは、 11 個の命令から成ります。
命令 | 参照 | 説明 |
Play | ActionPlay | 現在のフレームの再生を開始 |
Stop | ActionStop | 現在のフレームの再生を停止 |
NextFrame | ActionNextFrame | 次のフレームに移動 |
PreviousFrame | ActionPreviousFrame | 前のフレームに移動 |
GotoFrame | ActionGotoFrame | 指定されたフレームに移動 |
GotoLabel | ActionGoToLabel | 指定されたラベルの付いたフレームに移動 |
WaitForFrame | ActionWaitForFrame | 指定されたフレームで停止 |
GetURL | ActionGetURL | 指定された URL の取得 |
StopSounds | ActionStopSounds | 再生中のサウンドを全て停止 |
ToggleQuality | ActionToggleQuality | 表示品質を High と Low で切り替え |
SetTarget | ActionSetTarget | 次のアクションのコンテキストを名前の付いたオブジェクトに切り替え |
上のリストのアクションは、ボタンの状態遷移時もしくは SWF 3 アクションによって起動されます。 アクションはその場で実行されるのではなく、後で実行するためにリストに追加されていきます。 このリストは、 ShowFrame タグかボタンの状態が変わった時に実行されます。 この時、リストの中のアクションから他のアクションを呼び出すことができます。 アクションは、空になるまで実行されます。 デフォルトでは、タイムラインアクションの Stop 、 Play 、 GoToFrame は、それが含まれるファイル自身に適用されます。 しかし、 SetTarget アクションは、 Flash ユーザインターフェイスの中の Tell ターゲット (Tell Target) を呼び、常にアクションコマンドは他のファイルかスプライトに送られます。
ここで挙げられたアクションは SWF 3 で使用できます。
DoAction は、現在のフレームが完了した時に Flash Player に対してアクションのリストを実行するように指示します。 アクションは DoAction タグがフレームのどこに出現したかということに関係なく、 ShowFrame タグが出現した時に実行されます。 SWF 9 以降では、 FileAttributes タグの ActionScript3 フィールドに 1 がセットされている時、 DoAction タグの内容は無視されます。
フィールド | 型 | コメント |
Header | RECORDHEADER | タグタイプ = 12 |
Actions | ACTIONRECORD [0 個以上] | 実行するアクションのリスト (次の ActionRecord 参照) |
ActionEndFlag | UI8 = 0 | 常に 0 |
ACTIONRECORD は、 ACTIONRECORDHEADER と、それに続くアクションのデータのかたまりから成ります。 ACTIONRECORDHEADER は ActionCode を使って実行するアクションを指定します。 アクションがヘッダの後にデータを必要とする場合、 ActionCode の上位ビットは 1 にセットされます。これは ActionCode が、後に続く 16 bit の長さのアクションデータのかたまりを必要とすることを示します。 注:多くのアクションで Length 以降のデータのかたまりは指定されません。その場合、命令は 1 バイトの種類のデータのみで構成されます。
フィールド | 型 | コメント |
ActionCode | UI8 | アクションコード |
Length | If code >= 0x80, UI16 | ActionCode と Length フィールドを含まない、 ACTIONRECORDHEADER のバイト数 |
ActionGotoFrame は、 現在のファイル中の指定されたフレームに移動する命令です。
フィールド | 型 | コメント |
ActionGotoFrame | ACTIONRECORDHEADER | ActionCode = 0x81 Length は常に 2 |
Frame | UI16 | フレームインデックス |
ActionGetURL は、 UrlString で指定された URL からデータを取得する命令です。 URL は色んなタイプにすることができます。HTML ファイル、画像または他の SWF ファイル等です。 ファイルがブラウザ上で実行されている場合、 URL から取得したデータは TargetString で指定されるフレームに表示されます。 "_level0" と "_level1" は特別なターゲット名で、他の SWF ファイルを level 0 と 1 にロードするために使用されます。
フィールド | 型 | コメント |
ActionGetURL | ACTIONRECORDHEADER | ActionCode = 0x83 |
UrlString | STRING | ターゲット URL 文字列 |
TargetString | STRING | ターゲット文字列 |
ActionNextFrame は、現在のファイル中の次のフレームに進める命令です。
フィールド | 型 | コメント |
ActionNextFrame | ACTIONRECORDHEADER | ActionCode = 0x04 |
ActionPreviousFrame は、現在のファイル中の前のフレームに進める命令です。
フィールド | 型 | コメント |
ActionPrevFrame | ACTIONRECORDHEADER | ActionCode = 0x05 |
ActionPlay は、現在のフレームから再生を開始する命令です。
フィールド | 型 | コメント |
ActionPlay | ACTIONRECORDHEADER | ActionCode = 0x06 |
ActionStop は、現在のフレームで再生を停止する命令です。
フィールド | 型 | コメント |
ActionStop | ACTIONRECORDHEADER | ActionCode = 0x07 |
ActionToggleQuality は、High と Low で描画品質を切り替える命令です。
フィールド | 型 | コメント |
ActionToggleQualty | ACTIONRECORDHEADER | ActionCode = 0x08 |
ActionStopSounds は、再生中の全ての音声を停止する命令です。
フィールド | 型 | コメント |
ActionStopSounds | ACTIONRECORDHEADER | ActionCode = 0x09 |
ActionWaitForFrame は、指定されたフレームで停止する命令です。 それ以外の場合、指定された数のアクションをスキップします。
フィールド | 型 | コメント |
ActionWaitForFrame | ACTIONRECORDHEADER | ActionCode = 0x8A Length は常に 3 |
Frame | UI16 | 停止するフレーム |
SkipCount | UI8 | フレームがロードされていない時のスキップするアクションの数 |
ActionSetTarget は後に続くアクションのコンテキストを切り替える命令です。 現在のファイルの名前付きオブジェクト (TargetName) に適用します。
例えば、 SetTarget アクションはスプライトオブジェクトのタイムラインを調整する時に使うことができます。 次のアクションの順序で "spinner" という名前のスプライトをタイムラインの最初のフレームに送信します。
SetTarget "spinner" で spinner オブジェクトを SetTarget "" まで適用します。 これはアクションのコンテキストを現在のファイルに戻すように指定します。 ターゲット名に関する解説は DefineSprite をご覧ください。
フィールド | 型 | コメント |
ActionSetTarget | ACTIONRECORDHEADER | ActionCode = 0x8B |
TargetName | STRING | アクションターゲットのターゲット |
ActionGoToLabel は、ラベルで指定されたフレームに移動する命令です。 FrameLabel タグを使うことでフレームにラベルを関連付けることができます。
フィールド | 型 | コメント |
ActionGoToLabel | ACTIONRECORDHEADER | ActionCode = 0x8C |
Label | STRING | フレームラベル |