LXVI. Shockwave Flash関数

PHPは、Paul Haeberliが作成したlibswfモジュールによりShockwave Flashファイルを作成する機能を提供します。libswfはhttp://reality.sgi.com/grafica/flash/からダウンロードすることが 可能です。libswfを入手した後にするべきことは、configureに --with-swf[=DIR]を指定することだ けです。ただし、DIRはディレクトリincludeおよびlibを有する場所です。 ディレクトリincludeにはファイルswf.hが、ディレクトリlibにはファイ ルlibswf.aがある必要があります。libswfの配布ファイルを展開した際に は、二つのファイルは一つのディレクトリにあります。結果的にファイル を適当な場所に手動でコピーする必要があります。

PHPをShockwave Flashサポート付きでインストールした後は、 ShockwaveファイルをPHPから作成することができるようになります。 何ができるかが分かると驚かされることでしょう。次のコードを見て下さい。

例 1. SWFの例


<?php
swf_openfile ("test.swf", 256, 256, 30, 1, 1, 1);
swf_ortho2 (-100, 100, -100, 100);
swf_defineline (1, -70, 0, 70, 0, .2);
swf_definerect (4, 60, -10, 70, 0, 0);
swf_definerect (5, -60, 0, -70, 10, 0);
swf_addcolor (0, 0, 0, 0);

swf_definefont (10, "Mod");
swf_fontsize (5);
swf_fontslant (10);
swf_definetext (11, "This be Flash wit PHP!", 1);

swf_pushmatrix ();
swf_translate (-50, 80, 0);
swf_placeobject (11, 60);
swf_popmatrix ();

for ($i = 0; $i < 30; $i++) {
    $p = $i/(30-1);
    swf_pushmatrix ();
    swf_scale (1-($p*.9), 1, 1);
    swf_rotate (60*$p,  'z');
    swf_translate (20+20*$p, $p/1.5, 0);
    swf_rotate (270*$p,  'z');
    swf_addcolor ($p, 0, $p/1.2, -$p);
    swf_placeobject (1, 50);
    swf_placeobject (4, 50);
    swf_placeobject (5, 50);
    swf_popmatrix ();
    swf_showframe ();
}

for ($i = 0; $i < 30; $i++) {
    swf_removeobject (50);
    if (($i%4) == 0) {
        swf_showframe ();
    }
}

swf_startdoaction ();
swf_actionstop ();
swf_enddoaction ();

swf_closefile ();
?>
     
このコードはアニメーションを生成し、urlで見ることができます。

注意: SWFサポートはPHP 4 RC2で追加されました。

libswf は、Windows でサポートされていません。このライブラリの開発 は中止されており、他のシステムへ移植するためのソースは入手できま せん。

目次
swf_openfile — 新規にShockwave Flashファイルをオープンする
swf_closefile — カレントのShockwave Flashファイルを閉じる
swf_labelframe — カレントのフレームにラベルを付ける
swf_showframe — カレントのフレームを表示する
swf_setframe — 指定したフレームに切替える
swf_getframe — カレントのフレームのフレーム番号を得る
swf_mulcolor — グローバル乗算色を指定したrbga値に設定する
swf_addcolor — グローバル加算色を指定したrbga値に設定する
swf_placeobject — オブジェクトを画面に配置する
swf_modifyobject — オブジェクトを修正する
swf_removeobject — オブジェクトを削除する
swf_nextid — 次の未使用のオブジェクトIDを返す
swf_startdoaction — カレントのフレームのアクションリストの記述を開始する
swf_actiongotoframe — フレームを実行した後、停止する
swf_actiongeturl — Shockwave FlashムービーからURLを得る
swf_actionnextframe — フレームを一つ進める
swf_actionprevframe — フレームを一つ戻す
swf_actionplay — カレントのフレームからflashムービーの実行を開始する
swf_actionstop — カレントのフレームでflashムービーの実行を終了する
swf_actiontogglequality — クオリティのローとハイを切替える
swf_actionwaitforframe — フレームがロードされていない場合にアクションをスキップする
swf_actionsettarget — アクションのコンテキストを設定する
swf_actiongotolabel — 指定したラベルを有するフレームを表示する
swf_enddoaction — カレントのアクションを終了する
swf_defineline — 線を定義する
swf_definerect — 長方形を定義する
swf_definepoly — ポリゴンを定義する
swf_startshape — 複雑な形状を開始する
swf_shapelinesolid — カレントの行のスタイルを設定する
swf_shapefilloff — 塗りつぶしをオフにする
swf_shapefillsolid — カレントの塗りつぶし色を指定した色に設定する
swf_shapefillbitmapclip — カレントの塗りつぶしモードをクリップ付きビットマップ
swf_shapefillbitmaptile — カレントの塗りつぶしモードをタイル状のビットマップに設定する
swf_shapemoveto — カレントの位置を移動する
swf_shapelineto — 線を描画する
swf_shapecurveto — 2点間に2次ベジエ曲線を描画する
swf_shapecurveto3 — 3次ベジエ曲線を描画する
swf_shapearc — 円弧を描画する
swf_endshape — カレントの形状の定義を完結する
swf_definefont — フォントを定義する
swf_setfont — カレントのフォントを変更する
swf_fontsize — フォントの大きさを変更する
swf_fontslant — フォントの傾きを設定する
swf_fonttracking — カレントのフォントのトラッキングを設定する
swf_getfontinfo — 大文字のAと小文字のxの高さをピクセル単位で得る
swf_definetext — テキスト文字列を定義する
swf_textwidth — 文字列の幅を得る
swf_definebitmap — ビットマップを定義する
swf_getbitmapinfo — ビットマップに関する情報を得る
swf_startsymbol — シンボルを定義する
swf_endsymbol — シンボルの定義を終了する
swf_startbutton — ボタンの定義を開始する
swf_addbuttonrecord — カレントのボタンの位置、外観、アクティブエリアを制御する
swf_oncondition — アクションリストのトリガとして使用されるトランジションを定義する
swf_endbutton — カレントのボタンの定義を終了する
swf_viewport — 描画を行う範囲を選択する
swf_ortho — カレントのビューポートにおけるユーザー座標の直交マッピングを定義する
swf_ortho2 — ユーザ座標の2D直交マッピングをカレントのビューポイントに定義する
swf_perspective — 遠近法による投影変換を定義する
swf_polarview — 極座標で視点を定義する
swf_lookat — 視点変換を定義する
swf_pushmatrix — カレントの変換行列をスタックに入れる
swf_popmatrix — 以前の変換行列を回復する
swf_scale — カレントの変換をスケリーングする
swf_translate — カレントの座標軸を変換する
swf_rotate — カレントの座標を回転する
swf_posround — オブジェクトを配置または移動する際の変換時の丸め処理を有効または無効にする