SWF-File-0.20 > SWF::Element

名前

SWF::Element - SWFタグや要素のクラス群

概要

  use SWF::Element;
  use SWF::BinStream;

  $swf_stream=SWF::BinStream::Write;
  ....
  $rect=SWF::Element::RECT->new;
  $rect->configure(Xmin=>0, Ymin=>0, Xmax=>100, Ymax=>100);
  $rect->pack($swf_stream);
  ....

説明

SWF::Element モジュールはSWFのタグやその他の要素の作成、設定、コピー、 ビットストリングのパッキング、アンパッキングを扱います。

SWF::Element::*

SWF::Element クラスは、たとえばタグやRECT, SHAPEなどといったSWFの各要素のベースクラスです。 各 SWF::Element オブジェクトは一つ以上のフィールドを持ちます。

メソッド

$element=SWF::Element::* ->new([name=>value, ...]);

新しい要素を作成します。configureメソッドと同様の引数リストで初期化できます。

$element->clone;

要素をコピーします。

$element->configure( [name[=>value, ...]] );

フィールドの内容の設定、取得をします。 引数なしで呼ぶと、全フィールドの名前と値をハッシュとして返します。 フィールド名を指定して呼ぶと、そのフィールドの値を返します。 フィールド名と値(オブジェクト、もしくは配列のリファレンス)のペア(複数可)を指定して呼ぶと、 各フィールドをセットし、要素自身を返します。 値が配列のリファレンスであれば、そのフィールドの要素を再帰的に設定していきます。

$element->defined;

要素が定義済み(defined)かどうかを調べます。 要素内の全フィールドが未定義(not defined)であれば、要素自身も未定義と扱います。

$element->dumper([\&outputsub, $indent]);

要素を、perlスクリプトとして文字列化します。 出力用のコールバックサブルーチンとして、スクリプト文字列とインデント幅を引数に取る&outputsub を指定することができます。指定がなければ、現在セレクトされているファイルハンドルに出力します。

$element->pack($stream);

要素を、SWFフォーマットに従ってSWF::BinStream::Writeオブジェクトの$streamに書き込みます。

$element->unpack($stream);

要素を、SWFフォーマットに従ってSWF::BinStream::Readオブジェクトの$streamから読み込みます。

$element->FieldName([configure parameters...]);

要素の各フィールドは、フィールド名でアクセスできます。 引数なしで呼ぶと、そのフィールドのオブジェクト/値を返します。 引数付きで呼ぶと、configureメソッドを呼び出してフィールドを設定し、フィールドのオブジェクト/値を返します。

$element->FlagName([value]);

一部のフィールドはフラグの集まりになっています。フラグはオブジェクトではなく単なる値で、フラグアクセサでアクセスします。。 引数なしで呼ぶと、そのフラグの値を返します。 値を指定して呼ぶと、フラグに値をセットしてからその値を返します。

SWF::Element::Scalar 派生クラス

SWF::Element::Scalar 派生クラスは、専用のpack/unpackメソッドを持ったスカラー値を保持するクラスです。

  SWF::Element::STRING    - null終端の文字列
  SWF::Element::PSTRING   - pascalタイプの文字列(長さ+文字列)
  SWF::Element::ID        - SWFキャラクタ(形やビットマップなど)のID (16bit)
  SWF::Element::BinData   - バイナリデータ。後述します。

メソッド

SWF::Element::Scalar は、SWF::Element からフィールド/フラグアクセサを以外のメソッドを継承しています。 違いを以下に述べます。

$scalar->configure([value])

引数なしで呼ぶと、保持しているスカラー値を返します。 値を指定して呼ぶと、その値をセットして、スカラー値を返します。

$scalar->value

保持しているスカラー値を返します。

SWF::Element::BinData

バイナリデータを保持します。

メソッド

SWF::Element::Scalar派生クラスです。それらと同じメソッドを持っています。 他のメソッドは以下の通り。

$bindata->Length

データの長さを返します。

$bindata->add( string )

データを追加します。

$bindata->substr( offset [, length , [replace]] )

データから一部を抜き出します。標準のsubstr関数と似ています。

$bindata->save( file )

データをファイルに保存します。fileにはファイル名かファイルハンドルを指定します。

$bindata->load( file )

データをファイルから読み込みます。fileにはファイル名かファイルハンドルを指定します。

SWF::Element::Array::*

SWF::Element::Array は、SWF要素の配列を表すベースクラスで、配列のリファレンスです。

メソッド

SWF::Element::Array は、フィールド/フラグアクセサを除くすべてのメソッドを SWF::Element から継承します。違いを以下に示します。

$array->configure( list... )

配列にlistを追加します。listの各要素は、$arrayが保持できる適切な要素オブジェクトか、 要素オブジェクトのフィールドと値のペアを羅列した配列のリファレンスでなければいけません。

$array->new_element

$arrayが保持できる新しい要素を返します。 新要素は$arrayに自動的には追加されません。新要素を設定後、'push @$array, $new' などとして 追加する必要があります。

SUBCLASSES

以下に,SWF要素の全サブクラスを列挙します。名前の'SWF::Element::'は省略します (つまり、たとえば'RECT'は実際には'SWF::Element::RECT')。 '$'は単純なスカラを示します。 各要素の詳しい情報については、'Macromedia Flash (SWF) File Format Specifications'を参照してください。 http://www.macromedia.com/software/flash/open/licensing/fileformat/ からダウンロードできます。

基本データ型

RGB / RGBA

色。RGBAはアルファチャンネルを保持。

  field    class
  Red      $
  Green    $
  Blue     $
  Alpha    $  - RGBAのみ
RECT

矩形領域。

  field    class
  Xmin     $
  Ymin     $
  Xmax     $
  Ymax     $
MATRIX

拡大縮小回転・平行移動用行列。

 field        class
 ScaleX       $
 ScaleY       $
 RotateSkew0  $
 RotateSkew1  $
 TranslateX   $
 TranslateY   $

これは3つのメソッドを持ちます。

$matrix->scale([xscale, [yscale]]);

X軸とY軸のそれぞれについて、拡大縮小します。 yscaleを省略すると、等比で拡大縮小します。

$matrix->moveto(x,y);

(x, y)へ平行移動します。

$matrix->rotate(degree);

degree 度回転します。

CXFORM / CXFORMWITHALPHA

色変換値。

 field          class
 RedMultTerm    $
 GreenMultTerm  $
 BlueMultTerm   $
 AlphaMultTerm  $  - CXFORMWITHALPHAのみ.
 RedAddTerm     $
 GreenAddTerm   $
 BlueAddTerm    $
 AlphaAddTerm   $  - CXFORMWITHALPHAのみ.

SWF タグ

Tag

全SWFタグのベースクラス。 SWFストリームからunpackされると、適切なタグに再ブレスされます。

$tag->tag_number

タグのIDを返します。

$tag->tag_name

タグの名前を返します。

Tag::Unknown

SWF::Element中に定義されていないタグ。

 field  class
 Tag    $
 Data   BinData

表示

Tag::PlaceObject

オブジェクトを配置します。

 field           class
 CharacterID     ID
 Depth           $
 Matrix          MATRIX
 ColorTransform  CXFORM
Tag::PlaceObject2

オブジェクトを配置します。

 field           class
 Flags           $
   PlaceFlagMove (Flags)
 Depth           $
 CharacterID     ID
 Matrix          MATRIX
 ColorTramsform  CXFORMWITHALPHA
 Ratio           $
 Name            STRING
 ClipDepth       $
 ClipActions     Array::CLIPACTIONRECORDARRAY
Array::CLIPACTIONRECORDARRAY

CLIPACTIONRECORDの配列。

CLIPACTIONRECORD

クリップイベントで起動されるクリップアクション。

 field                     class
 EventFlags6               $            - SWF 6 以上のみ
   ClipEventKeyPress       (EventFlags6)
   ClipEventDragOut        (EventFlags6)
 EventFlags                $
   ClipEventDragOver       (EventFlags)
   ClipEventRollOut        (EventFlags)
   ClipEventRollOver       (EventFlags)
   ClipEventReleaseOutside (EventFlags)
   ClipEventRelease        (EventFlags)
   ClipEventPress          (EventFlags)
   ClipEventInitialize     (EventFlags)
   ClipEventData           (EventFlags)
   ClipEventKeyUp          (EventFlags)
   ClipEventKeyDown        (EventFlags)
   ClipEventMouseUp        (EventFlags)
   ClipEventMouseDown      (EventFlags)
   ClipEventMouseMove      (EventFlags)
   ClipEventUnload         (EventFlags)
   ClipEventEnterFrame     (EventFlags)
   ClipEventLoad           (EventFlags)
 KeyCode                   $
 Actions                   Array::ACTIONRECORDARRAY
Tag::RemoveObject / Tag::RemoveObject2

オブジェクトを除去。

 field        class
 CharacterID  ID    - RemoveObjectのみ
 Depth        $
Tag::ShowFrame

現在のフレームを表示。

制御

Tag::SetBackgroundColor

背景色を設定。

 field            class
 BackgroundColor  RGB
Tag::FrameLabel

フレームラベルを設定。

 field          class
 Name           STRING
 NameAnchorFlag $
Tag::Protect

SWFファイルを、オーサリングツールから読めないよう保護します。

 field     class
 Reserved  $         いつも0(?)
 Password  STRING
Tag::End

SWFファイルの終端。

Tag::ExportAssets

SWFキャラクタを他のSWFで使えるようexportします。

 field   class
 Assets  Array::ASSETARRAY
Tag::ImportAssets

他のSWFからキャラクタをimportします。

 field   class
 URL     STRING
 Assets  Array::ASSETARRAY
Array::ASSETARRAY

ASSETの配列

ASSET

export/importするキャラクタのIDと名前のペア。

 field   class
 ID      ID
 Name    STRING
Tag::EnableDebugger / 2

デバッガを有効にします。EnableDebuggerはSWF5用、EnableDebugger2はSWF6用。

 field     class
 Reserved  $        いつも0 (?)
 Password  STRING

アクション

Tag::DoAction

フレームアクションをセットします。

 field    class
 Actions  Array::ACTIONRECORDARRAY
Tag::DoInitAction

スプライト初期化用にアクションを実行します。

 field    class
 SpriteID ID
 Actions  Array::ACTIONRECORDARRAY
Array::ACTIONRECORDARRAY

ACTIONRECORDの配列。

ACTIONRECORD

アクションタグのベースクラス。 また、引数なしのアクションはすべてこのクラスに属します。

 field  class
 Tag    ACTIONTagNumber

他に、疑似フィールドとしてLocalLabelを持ちます。 ActionIf, ActionJump, ActionWaitForFrame/2 の飛び先やDefineFunction のコードサイズとして使うラベルを 指定します。ラベルは、数字から始まらず、'#'を含まない文字列です。

ACTIONTagNumber

アクションタグ番号、あるいは名前。

ACTIONRECORD::ActionUnknown

SWF::Element中に定義されていないアクションタグ。

 field  class
 Tag    ACTIONTagNumber
 Data   BinData
ACTIONRECORD::ActionGotoFrame

指定されたフレームへ飛ぶ。

 field  class
 Tag    ACTIONTagNumber
 Frame  $
ACTIONRECORD::ActionGetURL

指定したURLに飛ぶ。

 field         class
 Tag           ACTIONTagNumber
 UrlString     STRING
 TargetString  STRING
ACTIONRECORD::ActionWaitForFrame

指定したフレームが来るまでアクションをスキップ

 field      class
 Tag        ACTIONTagNumber
 Frame      $
 SkipCount  $[label]

unpackメソッドは、SkipCountの飛び先を計算してそこにLocalLabelを挿入し、 SkipCount値を'ラベル#元の値' ('A#45'のような)にセットします。 packするときには'#'以降は無視されます。

ACTIONRECORD::ActionSetTarget

アクションのターゲットを指定。

 field       class
 Tag         ACTIONTagNumber
 TargetName  STRING
ACTIONRECORD::ActionGotoLabel

指定したラベルのフレームへ飛ぶ。

 field  class
 Tag    ACTIONTagNumber
 Label  STRING
ACTIONRECORD::ActionWaitForFrame2

スタックで指定したフレームが来るまでアクションをスキップ。

 field      class
 Tag        ACTIONTagNumber
 SkipCount  $

WaitForFrameの項のlabelに関する注意書きも参照のこと。

ACTIONRECORD::ActionPush

データをスタックにプッシュ。

 field     class
 Tag       ACTIONTagNumber
 DataList  Array::ACTIONDATAARRAY
Array::ACTIONDATAARRAY

ACTIONDATAの配列。

ACTIONDATA

アクションスクリプト用のデータのベースクラス。 configureすると適切なサブクラスに再ブレスされます。

$actiondata->configure([type => data])

指定した型のデータをセットします。 型は、String, Property (FLASH 4 のみ), Register, Boolean, Double, Integer, Lookup。

ACTIONRECORD::ActionJump / ActionIf

アクションスクリプトを分岐(常に分岐/スタックトップが真の時分岐)

 field        class
 BranchOffset $[label]

unpackメソッドは、BranchOffsetの飛び先を計算してそこにLocalLabelを挿入し、 BranchOffset値を'ラベル#元の値' ('A#45'のような)にセットします。 packするときには'#'以降は無視されます。

ACTIONRECORD::ActionGetURL2

スタックで指定したURLに飛ぶ。

 field   class
 Tag     ACTIONTagNumber
 Method  $
ACTIONRECORD::ActionGotoFrame2

スタックで指定されたフレームへ飛ぶ。

 field    class
 Tag      ACTIONTagNumber
 PlayFlag $
ACTIONRECORD::ActionConstantPool

インデックスで参照可能なワードを定義。

 field         class
 Tag           ActionTagNumber
 ConstantPool  Array::STRINGARRAY
Array::STRINGARRAY

STRINGの配列。

ACTIONRECORD::ActionDefineFunction

関数を定義。

 field         class
 Tag           ActionTagNumber
 FunctionName  STRING
 Params        Array::STRINGARRAY
 CodeSize      $[label]

CodeSizeにlabelを指定することができます。関数定義が終わった次の アクションを指すようにします。

ACTIONRECORD::ActionStoreRegister

スタックトップをレジスタに代入。

 field     class
 Tag       ActionTagNumber
 Register  $
ACTIONRECORD::ActionWith

WithBlock内に記述されたスクリプトについて、スタックトップにおかれた オブジェクトを参照する。

 field      class
 WithBlock  Array::ACTIONBLOCK
Array::ACTIONBLOCK

ACTIONRECORDの配列。

図形

Array::FILLSTYLEARRAY1 / 2 / 3

フィルスタイルの配列。 FILLSTYLEARRAY1と2はFILLSTYLE1を、FILLSTYLEARRAY3はFILLSTYLE3を保持。

FILLSTYLE1 / 3

図形のフィルスタイル。 FILLSTYLE3はアルファチャンネルを保持。

 field           class
 FillStyleType   $
 Color           RGB / RGBA
 GradientMatrix  MATRIX
 Gradient        Array::GRADIENT1 / 3
 BitmapID        ID
 BitmapMatrix    MATRIX
Array::LINESTYLEARRAY1 / 2 / 3

ラインスタイルの配列。 LINESTYLEARRAY1と2はLINESTYLE1を、LINESTYLEARRAY3はLINESTYLE3を保持。

LINESTYLE1 / 3

図形のラインスタイル。 LINESTYLE3はアルファチャンネルを保持。

 field  class
 Width  $
 Color  RGB / RGBA
SHAPE

スタイルなしの図形。DefineFont/2, DefineMorphShape用。

 field         class
 ShapeRecords  Array::SHAPERECARRAY1
SHAPEWITHSTYLE1 / 2 / 3

スタイルありの図形。 SHAPEWITHSTYLE3はアルファチャンネルを保持。

 field         class
 FillStyles    Array::FILLSTYLEARRAY1 / 2 / 3
 LineStyles    Array::LINESTYLEARRAY1 / 2 / 3
 ShapeRecords  Array::SHAPERECARRAY1 / 2 / 3 
Array::SHAPERECORDARRAY1 / 2 / 3

SHAPERECORD1 / 2 / 3の配列。

SHAPERECORD1 / 2 / 3

図形の辺やスタイルを表すベースクラス。 configureすると適切なサブクラスに再ブレスされます。

SHAPERECORD1/2/3::STYLECHANGERECORD

図形の開始点とスタイルを表す。

 field       class
 MoveDeltaX  $
 MoveDeltaY  $
 FillStyle0  $
 FillStyle1  $
 LineStyle   $
 FillStyles  Array::FILLSTYLEARRAY2 / 3  - SHAPERECORD2/3のみ
 LineStyles  Array::LINESTYLEARRAY2 / 3  - SHAPERECORD2/3のみ
SHAPERECORDn::STRAIGHTEDGERECORD

図形の直線のエッジを表す、SHAPERECORD1/2/3共通のサブクラス。

 field   class
 DeltaX  $
 DeltaY  $
SHAPERECORDn::CURVEDEDGERECORD

図形の曲線のエッジを表す、SHAPERECORD1/2/3共通のサブクラス。

 field          class
 ControlDeltaX  $
 ControlDeltaY  $
 AnchorDeltaX   $
 AnchorDeltaY   $
Tag::DefineShape / Tag::DefineShape2 / Tag::DefineShape3

図形定義タグ。 DefineShape2/3は255以上のスタイル数を保持できる。。 DefineShape3はアルファチャンネルを含む。

 field        class
 ShapeID      ID
 ShapeBounds  RECT
 Shapes       SHAPEWITHSTYLE1 / 2 / 3

グラデーション

Array::GRADIENT1 / 3

グラデーション情報の配列。 それぞれGRADRECORD1 / 3を保持。

GRADRECORD1 / 3

グラデーションを作る色。 GRADRECORD3はアルファチャンネルを保持。

 field  class
 Ratio  $
 Color  RGB / RGBA

ビットマップ

Tag::DefineBits

JPEGイメージを定義。

 field        class
 CharacterID  ID
 JPEGImage    BinData
Tag::JPEGTable

JPEGエンコーディングテーブルを定義。

 field     class
 JPEGData  BinData
Tag::DefineBitsJPEG2 / 3

JPEGデータを定義。イメージとエンコーディングテーブルを含む。 DefineBitsJPEG3はアルファチャンネルのデータも保持。

 field            class
 CharacterID      ID
 JPEGData         BinData
 BitmapAlphaData  BinData - JPEG3のみ
Tag::DefineBitsLossless / Tag::DefineBitsLossless2

可逆圧縮のビットマップを定義。 DefineBitsLossless2はアルファチャンネルを保持。

 field                 class
 CharacterID           ID
 BitmapFormat          $
 BitmapWidth           $
 BitmapHeight          $
 BitmapColorTableSize  $
 ZlibBitmapData        BinData

モーフィング

Tag::DefineMorphShape

モーフィングの開始図形と終了図形を定義。

 field            class
 CharacterID      ID
 StartBounds      RECT
 EndBounds        RECT
 MorphFillStyles  Array::MORPHFILLSTYLEARRAY
 MorphLineStyles  Array::MORPHLINESTYLEARRAY
 StartEdges       SHAPE
 EndEdges         SHAPE
Array::MORPHFILLSTYLEARRAY

MORPHFILLSTYLEの配列。

MORPHFILLSTYLE

開始時と終了時のフィルスタイル。

 field                class
 FillStyleType        $
 StartColor           RGBA     (FillStyleType == 0x00)
 EndColor             RGBA     (FillStyleType == 0x00)
 StartGradientMatrix  MATRIX   (FillStyleType == 0x10[線型] or 0x12[放射状])
 EndGradientMatrix    MATRIX   (FillStyleType == 0x10[線型] or 0x12[放射状])
 Gradient             Array::MORPHGRADIENT
                               (FillStyleType == 0x10[線型] or 0x12放射状])
 BitmapID             ID       (FillStyleType == 0x40[タイル] or 0x41[クリップ])
 StartBitmapMatrix    MATRIX   (FillStyleType == 0x40[タイル] or 0x41[クリップ])
 EndBitmapMatrix      MATRIX   (FillStyleType == 0x40[タイル] or 0x41[クリップ])
Array::MORPHGRADIENT

MORPHGRADRECORDの配列

MORPHGRADRECORD

開始時と終了時のグラデーションを作る色。

 field      class
 StartRatio $
 StartColor RGBA
 EndRatio   $
 EndColor   RGBA
Array::MORPHLINESTYLEARRAY

MORPHLINESTYLEの配列

MORPHLINESTYLE

開始時と終了時のラインスタイル。

 field      class
 StartWidth $
 StartColor RGBA
 EndWidth   $
 EndColor   RGBA

フォントとテキスト

Tag::DefineFont

フォントグリフを定義。

 field            class
 FontID           ID
 GlyphShapeTable  GLYPHSHAPEARRAY1
Array::GLYPHSHAPEARRAY1 / 2

SHAPEの配列。

Tag::DefineFontInfo / Tag::DefineFontInfo2

フォント情報を定義。

 field                class
 FontID               ID
 FontName             PSTRING
 FontFlags            $
   FontFlagsShiftJIS  (FontFlags)
   FontFlagsANSI      (FontFlags)
   FontFlagsItalic    (FontFlags)
   FontFlagsBold      (FontFlags)
 LanguageCode         $            - DefineFontInfo2 のみ
 CodeTable            Array::FONTCODETABLE
Tag::DefineFont2

フォントグリフや他の情報を定義。

 field                class
 FontID               ID
 FontFlags            $
   FontFlagsShiftJIS  (FontFlags)
   FontFlagsANSI      (FontFlags)
   FontFlagsItalic    (FontFlags)
   FontFlagsBold      (FontFlags)
 LanguageCode         $
 FontName             PSTRING
 GlyphShapeTable      Array::GLYPHSHAPEARRAY2
 CodeTable            Array::FONTCODETABLE
 FontAscent           $
 FontDescent          $
 FontLeading          $
 FontAdvanceTable     Array::FONTADVANCETABLE
 FontBoundsTable      Array::FONTBOUNDSTABLE
 FontKerningTable     FONTKERNINGTABLE
Array::FONTCODETABLE / FONTADVANCETABLE / FONTBOUNDSTABLE

それぞれ、グリフの図形テーブルに対応して文字コード、文字送り幅、バウンディングボックスを定義します。 コードと送り幅はスカラーの配列、バウンディングボックスはRECTの配列です。

FONTKERNINGTABLE

カーニングテーブルをハッシュで定義します。 それぞれのカーニングのペアを'code1-code2'と表します。 たとえば'T'(文字コードは84)と'o'(111)のペアは'84-111'。

$kern->configure([ pair [=> adjustment, ...]])

引数なしで呼ぶと、すべてのカーニングのペアと調整値を返します。 カーニングペアを指定して呼ぶと、その調整値を返します。 カーニングペアと調整値の組(複数可)を指定して呼ぶと、カーニングテーブルにそれらを追加します。

Tag::DefineText / Tag::DefineText2

テキストを定義。

 field         class
 CharacterID   ID
 TextBounds    RECT
 TextMatrix    MATRIX
 TextRecords   Array::TEXTRECORDARRAY1 / 2
Array::TEXTRECORDARRAY1 / 2

TEXTRECORD1 / 2の配列。

TEXTRECORD1 / 2

テキストレコードのベースクラス。 configureすると適切なサブクラスに再ブレスされます。

TEXTRECORD1/2::TYPE1

テキストのフォント、色、位置、一行の高さ。

 field       class
 FontID      ID
 TextColor   RGB / RGBA
 XOffset     $
 YOffset     $
 TextHeight  $
TEXTRECORD::TYPE0

テキスト文字列。

 field         class
 GlyphEntries  Array:GLYPHENTRYARRAY
Array::GLYPHENTRYARRAY

GLYPHENTRYの配列。

GLYPHENTRY

テキスト文字列の文字グリフと送り幅。

 field         class
 GlyphIndex    $
 GlyphAdvance  $ 
Tag::DefineEditText

編集可能なテキストボックスを定義。

 field         class
 CharacterID   ID
 Bounds        RECT
 Flags         $
   WordWrap    (Flags)
   Multiline   (Flags)
   Password    (Flags)
   ReadOnly    (Flags)
   AutoSize    (Flags)
   NoSelect    (Flags)
   Border      (Flags)
   HTML        (Flags)
   UseOutlines (Flags)
 FontID        ID
 FontHeight    $
 TextColor     RGBA
 MaxLength     $
 Align         $
 LeftMargin    $
 RightMargin   $
 Indent        $
 Leading       $
 VariableName  STRING
 InitialText   STRING

サウンド

Tag::DefineSound

サウンドを定義。

 field             class
 SoundID           ID
 Flags             $
   SoundFormat     (Flags)
   SoundRate       (Flags)
   SoundSize       (Flags)
   SoundType       (Flags)
 SoundSampleCount  $
 SoundData         BinData
Tag::StartSound

サウンドを再生。

 field      class
 SoundID    ID
 SoundInfo  SOUNDINFO
SOUNDINFO

サウンド情報を定義。

 field            class
 SyncFlags        $
   SyncNoMultiple (SyncFlags)
   SyncStop       (SyncFlags)
 InPoint          $
 OutPoint         $
 LoopCount        $
 EnvelopeRecords  Array::SOUNDENVELOPEARRAY
Array::SOUNDENVELOPEARRAY

SOUNDENVELOPEの配列。

SOUNDENVELOPE

サウンドエンベロープ情報。

 field       class
 Pos44       $
 LeftLevel   $
 RightLevel  $
Tag::SoundStreamHead / Tag::SoundStreamHead2

ストリーミングサウンドのフォーマットを定義。

 field                    class
 Flags                    $
   PlaybackSoundRate      (Flags)
   PlaybackSoundSize      (Flags)
   PlaybackSoundType      (Flags)
   StreamSoundCompression (Flags)
   StreamSoundRate        (Flags)
   StreamSoundSize        (Flags)
   StreamSoundType        (Flags)
 StreamSoundSampleCount   $
 LatencySeek              $        - SoundStreamHead2 のみ
Tag::SoundStreamBlock

フレームごとにインタリーブされたストリーミング用サウンドを定義。

 field            class
 StreamSoundData  BinData

ボタン

Array::BUTTONRECORDARRAY1 / 2

BUTTONRECORD1 / 2の配列。

BUTTONRECORD1 / 2

ボタンのキャラクタと、それに関連づけるアクションを定義。

 field                 class
 ButtonStates          $
   ButtonStateHitTest  (ButtonStates)
   ButtonStateDown     (ButtonStates)
   ButtonStateOver     (ButtonStates)
   ButtonStateUp       (ButtonStates)
 CharacterID           ID
 PlaceDepth            $
 PlaceMatrix           MATRIX
 ColorTransform        CXFORMWITHALPHA - BUTTONRECORD2のみ
Tag::Definebutton

シンプルなボタンを定義。

 field       class
 ButtonID    ID
 Characters  Array::BUTTONRECORDARRAY1
 Actions     Array::ACTIONRECORDARRAY
Tag::DefineButton2

全ての状態に反応できるボタンを定義。

 field       class
 ButtonID    ID
 Flags       $
 Characters  Array::BUTTONRECORDARRAY2
 Actions     Array::BUTTONCONDACTIONARRAY
Array::BUTTONCONDACTIONARRAY

BUTTONCONDACTIONの配列。

BUTTONCONDACTION

ボタンのアクションと、トリガとなるボタンの状態。

 field                    class
 Condition                $
   CondKeyPress           (Condition)
   CondOverDownToIdle     (Condition)
   CondIdleToOverDown     (Condition)
   CondOutDownToIdle      (Condition)
   CondOutDownToOverDown  (Condition)
   CondOverDownToOutDown  (Condition)
   CondOverDownToOverUp   (Condition)
   CondOverUpToOverDown   (Condition)
   CondOverUpToIdle       (Condition)
   CondIdleToOverUp       (Condition)
 Actions                  Array::ACTIONRECORDARRAY
Tag::DefineButtonCxform

ボタンキャラクタの色変換を定義。

 field                 class
 ButtonID              ID
 ButtonColorTransform  CXFORM
Tag::DefineButtonSound

ボタンのサウンドを定義。

 field             class
 ButtonID          ID
 ButtonSoundChar0  ID
 ButtonSoundInfo0  SOUNDINFO
 ButtonSoundChar1  ID
 ButtonSoundInfo1  SOUNDINFO
 ButtonSoundChar2  ID
 ButtonSoundInfo2  SOUNDINFO
 ButtonSoundChar3  ID
 ButtonSoundInfo3  SOUNDINFO

スプライト

Tag::DefineSprite

スプライトを定義。

 field              class
 SpriteID           ID
 FrameCount         $
 ControlTags        Array::TAGARRAY
Array::TAGARRAY

SWFタグの配列

ビデオ

Tag::DefineVideoStream

ビデオを定義。

  field        class
  CharacterID  ID
  NumFrames    $
  Width        $
  Height       $
  VideoFlags   $
  CodecID      $
Tag::VideoFrame

ビデオの1フレームデータを定義。

  field      class
  StreamID   ID
  FrameNum   $
  VideoData  BinData

LIMITATIONS

全てのタグをテストできたわけではない。

ビットマップやサウンド、ビデオデータといったバイナリデータはデコードもエンコードもしない。

コピーライト

Copyright 2000 Yasuhiro Sasama (ySas), <ysas@nmt.ne.jp>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

SWF::BinStream, SWF::Parser

SWF file format specification from Macromedia.

翻訳者

笹間康弘 (ysas@nmt.ne.jp)