掲示板にも書きましたが、ベースとなる swf ファイルの中に、送られてきたデータを 変数として持たせるためのActionScript のバイトコードを挿入する、ということを CGI を使ってしています。外部ファイルからのデータのインポートのようなFlash の 機能として備わっているものではなく、Flash のパブリッシュの際に行なわれる 動作の一部に相当することをCGIプログラムによって行なっています。 Python という言語を使っているのですが、PHPでも十分可能だと思います。 ただ、数行でできるようなものではないです。 ある程度SWFファイルの内部形式に通じていると説明しやすいのですが、 Macromediaのサイトにある flash_file_format_specification.pdf は読んだことはありますか? (ダウンロードにはメンバーシップ登録が必要なようですが、ファイル名で検索するとすぐ見つかります) SWF ファイルはひとつの「ヘッダ」と複数の「タグ」によって構成されています。 ヘッダには SWF ファイルのバージョンやファイルサイズ、表示部分のサイズ、 フレームレートなどの情報が含まれています。タグには様々なタイプがあり、 個々のタグがたとえばシェイプを定義したり、配置したり、しています。 上で紹介した pdf の巻末に具体的に例が載っているので参考になります。 フィールド内に長方形をひとつ持つ、フレーム数 1 の SWF ファイルは、 0) ヘッダ 1) SetBackGroundColor タグ(Tag Type 9) -- 背景色を指定 2) DefineShape タグ(Tag Type 2) -- 長方形を定義 3) PlaceObject2 タグ(Tag Type 26) -- 定義した長方形を配置 4) ShowFrame タグ(Tag Type 1) -- フレームを表示(このタグがフレームの境界になる) 5) End タグ(Tag Type 0) -- おわりであることを示す と、5つのタグから成ります。 ActionScript もタグとして SWF ファイルに収められています。 今の例において、1フレーム目のフレームアクションとして、 myname = "tawtaw"; というスクリプトを書いたとすると(使われないので外からは変化はわかりませんが)、 4)よりも前のどこかのタグの間に DoAction タグ(Tag Type 12)が挿入されるわけです。 カウントダウン CGI では、このタグを CGI で生成して、ベースとなる SWFファイルに挿入しています。 さて、DoAction タグですが、その内容は上の例でいうと、 「myname」に、「tawtaw」を「代入しろ」という文に相当します。 実際にはスタックにアクションを積んでいきます。 ActionPush "myname" ActionPush "tawtaw" ActionSetVariable のような形になります。 また、タグは自身のタイプや長さを表す情報をタグヘッダとしてこれらの前に 持ちます。具体的にこのタグのバイト表現を見てみると、 3f 03 18 00 00 00 96 08 00 00 6d 79 6e 61 6d 65 00 96 08 00 00 74 61 77 74 61 77 00 1d 00 となります。 ひとつひとつについて説明すると、 3f 03 -- タグはじまり, Type=12(DoActionタグ) 18 00 00 00 -- タグ長さ 0x18 = 24 byte(ここからタグ終わりまでの長さ) 96 -- ActionPush 08 00 -- Pushするものの長さ, 8 byte 00 -- Pushするものは文字列 6d 79 6e 61 6d 65 00 -- "myname" (ord("m")=109=0x6d など。00は文字列終端を意味) 96 -- ActionPush 08 00 -- Pushするものの長さ 00  -- Pushするものは文字列 74 61 77 74 61 77 00 -- "tawtaw" 1d -- ActionSetVariable 00 -- タグ終わり となります。 3つのActionを繰り返すことで複数の代入文をタグの中に含めることができます。 値として日本語を使いたい場合は Shift_JIS でのバイト表現を用いれば良いです。 このようなDoActionタグに相当するバイナリを生成し、ベースとなるSWFファイルの 然るべきところ(タグとタグの間)に挿入します。またこのことによりSWFファイル 全体のサイズが変化するので、ヘッダも変更する必要があります。 ということで、CGI から name="myname", value="tawtaw" などが渡されてきたら、 ・それぞれの変数から Pushするものの長さ を計算 ・その値を考慮して挿入することになる DoActionタグの長さの計算 ・その値を考慮して挿入後の全体の SWF ファイルの長さの計算 ・DoActionタグを生成 ・ベースファイルを読み込んでヘッダのファイルサイズ部分の書き換え ・べースファイルにDoActionタグを挿入して新しい SWF ファイルを作成、書き出し ・新しい SWF ファイルへのリンクを含む html を生成してブラウザに返す という一連の作業をするプログラムを組めば良い、ということになります。 面倒ですが、基本は文字列の長さの計算とバイナリファイルの読み書きだけなので 技術的に特に難しいところはないと思います。でも面倒です。 それと今は説明しませんでしたがファイルサイズなどを表す整数のバイトオーダが little-endian であるとか細かいルールがあるので、それなりに flash_file_format_specification.pdf を読みこむ必要があります。