そのまんま!

LXXXIX. Flash 用 Ming 関数

警告

この拡張モジュールは、 実験的 なものです。この拡張モジュールの動作・ 関数名・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 このモジュールは自己責任で使用してください。

導入

Ming は省略語ではありません。Ming は、 SWF ("Flash") フォーマットのムービーを作成するための オープンソース (LGPL) のライブラリです。Ming は、 シェープ、グラディエント、ビットマップ (PNG および JPEG)、モーフィング ("変形")、 テキスト、ボタン、アクション、スプライト ("ムービークリップ")、 mp3 のストリーム出力、色変換といった Flash 4 の機能のほとんど全てをサポートしています。 現在未サポートなのは、サウンド関係のイベントのみです。

長さ、距離、大きさ等を指定する値は全て "twips" つまり、20 ユニット /ピクセル 単位であることに注意してください。しかし、実際には、Flash プレイヤーがムービーを embed/object タグで指定したピクセルサイズまたは embed されていない場合はフレーム全体にスケーリングするため、 任意のサイズになります。

Ming は、既存の PHP/libswf モジュール に対して多くの点で優れています。 Ming は、そのコードをコンパイルできる環境でならどこでも使用することが可能です。一方、 libswf のソースコードは公開されておらず、 ごくわずかなプラットフォームでのみしか利用できません。 Windows は、libswf でサポートされるプラットフォームには入っていません。 Ming は、ムービーの要素を PHP オブジェクト内に隠蔽することにより、 SWF ファイルフォーマットの細部を直接取り扱うことを回避しています。 また、Ming はメンテナンスが継続されています。 使用したい機能がある場合には、我々、 http://ming.sourceforge.net/ まで知らせてください。

Ming は、PHP 4.0.5 で追加されました。

要件

Ming を PHP で使用するには、まず、Ming ライブラリを構築し、 インストールする必要があります。ソースコードとインストール手引が、 Ming のホームページ http://ming.sourceforge.net/ から入手可能です。ここには、例や簡単なチュートリアル、最新のニュースもあります。

ming のアーカイブをダウンロードし、展開してください。Ming ディレクトリに移動し、make、make install を実行してください。

これにより libming.so が構築され、 /usr/lib/ にインストールされます。また、 ming.h/usr/include/ にコピーされます。インストールされるディレクトリを変更するには、 MakefilePREFIX= の行を編集してください。

インストール手順

例 1. PHP に組み込む(Unix)



    mkdir <phpdir>/ext/ming
    cp php_ext/* <phpdir>/ext/ming
    cd <phpdir>
    ./buildconf 
    ./configure --with-ming <other config options>

    

PHP を通常と同様に構築、インストールしてください。必要ならば Web サーバを再起動してください。

ここで、extension=php_ming.sophp.ini ファイルに追加するか、 dl('php_ming.so'); を全ての Ming スクリプトの 先頭に追加してください。

実行時設定

設定ディレクティブは定義されていません。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

MING_NEW (integer)

MING_ZLIB (integer)

SWFBUTTON_HIT (integer)

SWFBUTTON_DOWN (integer)

SWFBUTTON_OVER (integer)

SWFBUTTON_UP (integer)

SWFBUTTON_MOUSEUPOUTSIDE (integer)

SWFBUTTON_DRAGOVER (integer)

SWFBUTTON_DRAGOUT (integer)

SWFBUTTON_MOUSEUP (integer)

SWFBUTTON_MOUSEDOWN (integer)

SWFBUTTON_MOUSEOUT (integer)

SWFBUTTON_MOUSEOVER (integer)

SWFFILL_RADIAL_GRADIENT (integer)

SWFFILL_LINEAR_GRADIENT (integer)

SWFFILL_TILED_BITMAP (integer)

SWFFILL_CLIPPED_BITMAP (integer)

SWFTEXTFIELD_HASLENGTH (integer)

SWFTEXTFIELD_NOEDIT (integer)

SWFTEXTFIELD_PASSWORD (integer)

SWFTEXTFIELD_MULTILINE (integer)

SWFTEXTFIELD_WORDWRAP (integer)

SWFTEXTFIELD_DRAWBOX (integer)

SWFTEXTFIELD_NOSELECT (integer)

SWFTEXTFIELD_HTML (integer)

SWFTEXTFIELD_ALIGN_LEFT (integer)

SWFTEXTFIELD_ALIGN_RIGHT (integer)

SWFTEXTFIELD_ALIGN_CENTER (integer)

SWFTEXTFIELD_ALIGN_JUSTIFY (integer)

SWFACTION_ONLOAD (integer)

SWFACTION_ENTERFRAME (integer)

SWFACTION_UNLOAD (integer)

SWFACTION_MOUSEMOVE (integer)

SWFACTION_MOUSEDOWN (integer)

SWFACTION_MOUSEUP (integer)

SWFACTION_KEYDOWN (integer)

SWFACTION_KEYUP (integer)

SWFACTION_DATA (integer)

定義済みクラス

以下のクラスが定義されています。この拡張モジュールが PHP 組み込みでコンパイルされているか、実行時に動的にロードされている場合のみ 使用可能です。

目次
SWFAction -- SWFAction クラス
SWFAction->__construct() -- 新しい SWFAction を作成する
SWFBitmap -- SWFBitmap クラス
SWFBitmap->__construct() -- ビットマップオブジェクトを読み込む
SWFBitmap->getHeight() -- ビットマップの高さを返す
SWFBitmap->getWidth() -- ビットマップの幅を返す
SWFButton -- SWFButton クラス
SWFButton->__construct() -- 新しいボタンを作成する
SWFButton->addAction() -- アクションを追加する
SWFButton->addASound() -- ボタンに音を関連付ける
SWFButton->addShape() -- ボタンに図形を追加する
SWFButton->setAction() -- アクションを設定する
SWFButton->setDown() -- addShape(shape, SWFBUTTON_DOWN) のエイリアス
SWFButton->setHit() -- addShape(shape, SWFBUTTON_HIT) のエイリアス
SWFButton->setMenu() -- メニューボタンとしての挙動を有効にする
SWFButton->setOver() -- addShape(shape, SWFBUTTON_OVER) のエイリアス
SWFButton->setUp() -- addShape(shape, SWFBUTTON_UP) のエイリアス
SWFDisplayItem -- SWFDisplayItem クラス
SWFDisplayItem->addAction() -- この SWFAction を、指定した SWFSprite インスタンスに追加する
SWFDisplayItem->addColor() -- 指定した色を、このアイテムの色変換に追加する
SWFDisplayItem->endMask() -- MASK レイヤを定義するもうひとつの方法
SWFDisplayItem->getRot() -- 
SWFDisplayItem->getX() -- 
SWFDisplayItem->getXScale() -- 
SWFDisplayItem->getXSkew() -- 
SWFDisplayItem->getY() -- 
SWFDisplayItem->getYScale() -- 
SWFDisplayItem->getYSkew() -- 
SWFDisplayItem->move() -- オブジェクトを相対座標系で移動する
SWFDisplayItem->moveTo() -- グローバル座標系でオブジェクトを移動する
SWFDisplayItem->multColor() -- アイテムの色変換を乗算する
SWFDisplayItem->remove() -- オブジェクトをムービーから削除する
SWFDisplayItem->rotate() -- 相対座標で回転させる
SWFDisplayItem->rotateTo() -- グローバル座標で回転させる
SWFDisplayItem->scale() -- 相対座標系でオブジェクトを拡大縮小する
SWFDisplayItem->scaleTo() -- グローバル座標系でオブジェクトを拡大縮小する
SWFDisplayItem->setDepth() -- z オーダーを設定する
SWFDisplayItem->setMaskLevel() -- 指定したレベルに MASK レイヤを設定する
SWFDisplayItem->setMatrix() -- アイテムの変換行列を設定する
SWFDisplayItem->setName() -- オブジェクトの名前を設定する
SWFDisplayItem->setRatio() -- オブジェクトの比を設定する
SWFDisplayItem->skewX() -- X-skew を設定する
SWFDisplayItem->skewXTo() -- X-skew を設定する
SWFDisplayItem->skewY() -- Y-skew を設定する
SWFDisplayItem->skewYTo() -- Y-skew を設定する
SWFFill -- SWFFill クラス
SWFFill->moveTo() -- 塗りつぶしの原点を移動する
SWFFill->rotateTo() -- 塗りつぶしの回転を設定する
SWFFill->scaleTo() -- 塗りつぶしの倍率を設定する
SWFFill->skewXTo() -- 塗りつぶしの x-skew を設定する
SWFFill->skewYTo() -- 塗りつぶしの y-skew を設定する
SWFFont -- SWFFont クラス
SWFFont->__construct() -- フォント定義を読み込む
SWFFont->getAscent() --  フォントの ascent (ベースライン上部の高さ) あるいは取得できない場合は 0 を返す
SWFFont->getDescent() --  フォントの descent (ベースライン下部の深さ) あるいは取得できない場合は 0 を返す
SWFFont->getLeading() --  フォントの leading (行間) あるいは取得できない場合は 0 を返す
SWFFont->getShape() -- 指定した文字のグリフを文字列で返す
SWFFont->getUTF8Width() -- このフォントにおける指定した文字列の幅を計算する
SWFFont->getWidth() -- 文字列の幅を返す
SWFFontChar -- SWFFontChar クラス
SWFFontChar->addChars() -- フォントをエクスポートするために、フォントに文字を追加する
SWFFontChar->addUTF8Chars() -- フォントをエクスポートするために、フォントに文字を追加する
SWFGradient -- SWFGradient クラス
SWFGradient->__construct() -- 傾きオブジェクトを作成する
SWFGradient->addEntry() -- 傾きリストにエントリを追加する
SWFMorph -- SWFMorph クラス
SWFMorph->__construct() -- 新規に SWFMorph オブジェクトを作成する
SWFMorph->getShape1() -- 最初の図形へのハンドルを取得する
SWFMorph->getShape2() -- 最後の図形へのハンドルを取得する
SWFMovie -- SWFMovie クラス
SWFMovie->__construct() -- SWF バージョン 4 のムービーを表すムービーオブジェクトを作成する
SWFMovie->add() -- 任意の型のデータをムービーに追加する
SWFMovie->addExport() -- 
SWFMovie->addFont() -- 
SWFMovie->importChar() -- 
SWFMovie->importFont() -- 
SWFMovie->labelFrame() -- フレームにラベルをつける
SWFMovie->nextFrame() -- 動画の次のフレームに移動する
SWFMovie->output() -- 作成したムービーを出力する
SWFMovie->remove() -- 表示リストからオブジェクトのインスタンスを削除する
SWFMovie->save() -- SWF ムービーをファイルに保存する
SWFMovie->saveToFile() -- 
SWFMovie->setbackground() -- 背景色を設定する
SWFMovie->setDimension() -- ムービーの幅と高さを設定する
SWFMovie->setFrames() -- 動画の総フレーム数を設定する
SWFMovie->setRate() -- 動画のフレームレートを設定する
SWFMovie->startSound() -- 
SWFMovie->stopSound() -- 
SWFMovie->streamMP3() -- MP3 ファイルをストリーム再生する
SWFMovie->writeExports() -- 
SWFPrebuiltClip -- SWFPrebuiltClip クラス
SWFPrebuiltClip->__construct() -- SWFPrebuiltClip オブジェクトを返す
SWFShape -- SWFShape クラス
SWFShape->__construct() -- 新しい図形オブジェクトを作成する
SWFShape->addFill() -- 塗りつぶし色を図形に追加する
SWFShape->drawArc() --  現在の位置を中心とした半径 r の円弧を、12 時の方向から時計回りに 数えた角度 startAngle から endAngle まで描く
SWFShape->drawCircle() --  現在の位置を中心とした半径 r の円を、反時計回りに描く
SWFShape->drawCubic() --  現在の位置および指定した三つの制御点を使用して 三次ベジエ曲線を描く
SWFShape->drawCubicTo() --  現在の位置および指定した三つの制御点を使用して 三次ベジエ曲線を描く
SWFShape->drawCurve() -- 曲線を描く (相対座標)
SWFShape->drawCurveTo() -- 曲線を描く
SWFShape->drawGlyph() --  指定したフォントのグリフ定義を使用して、 指定した文字列の最初の文字を図形の中に描く
SWFShape->drawLine() -- 線を描く (相対座標)
SWFShape->drawLineTo() -- 線を描く
SWFShape->movePen() -- 図形のペンを移動する(相対座標)
SWFShape->movePenTo() -- 図形のペンを移動する
SWFShape->setLeftFill() -- 左ラスタ色を設定する
SWFShape->setLine() -- 図形の線種を設定する
SWFShape->setRightFill() -- 右ラスタ色を設定する
SWFSound -- SWFSound クラス
SWFSound -- 指定したファイルから、新しい SWFSound オブジェクトを返す
SWFSoundInstance -- SWFSoundInstance クラス
SWFSoundInstance->loopCount() -- 
SWFSoundInstance->loopInPoint() -- 
SWFSoundInstance->loopOutPoint() -- 
SWFSoundInstance->noMultiple() -- 
SWFSprite -- SWFSprite クラス
SWFSprite->__construct() -- ムービークリップ (スプライト) を作成する
SWFSprite->add() -- オブジェクトをスプライトに追加する
SWFSprite->labelFrame() -- フレームにラベルをつける
SWFSprite->nextFrame() -- 動画の次のフレームに移動する
SWFSprite->remove() -- オブジェクトをスプライトから削除する
SWFSprite->setFrames() -- 動画の総フレーム数を設定する
SWFSprite->startSound() -- 
SWFSprite->stopSound() -- 
SWFText -- SWFText クラス
SWFText->__construct() -- 新しい SWFText オブジェクトを作成する
SWFText->addString() -- 文字列を描画する
SWFText->addUTF8String() --  現在のペンの位置に、現在のフォント・高さ・行間および色設定を使用して 指定したテキストで SWFText オブジェクトを作成する
SWFText->getAscent() --  現在のサイズにおけるフォントの ascent (ベースライン上部の高さ) あるいは取得できない場合は 0 を返す
SWFText->getDescent() --  現在のサイズにおけるフォントの descent (ベースライン下部の深さ) あるいは取得できない場合は 0 を返す
SWFText->getLeading() --  現在のサイズにおけるフォントの leading (行間) あるいは取得できない場合は 0 を返す
SWFText->getUTF8Width() --  現在のフォントおよびサイズにおける指定した文字列の幅を計算する
SWFText->getWidth() -- 文字列の幅を計算する
SWFText->moveTo() -- ペンを移動する
SWFText->setColor() -- 現在のテキスト色を設定する
SWFText->setFont() -- 現在のフォントを設定する
SWFText->setHeight() -- 現在のフォントの高さを設定する
SWFText->setSpacing() -- 現在のフォントの間隔を設定する
SWFTextField -- SWFTextField クラス
SWFTextField->__construct() -- テキストフィールドのオブジェクトを作成する
SWFTextField->addChars() -- テキストフィールド内で使用可能なフォントに文字を追加する
SWFTextField->addString() -- 指定した文字列をテキストフィールドに結合する
SWFTextField->align() -- テキストフィールドの配置を設定する
SWFTextField->setBounds() -- テキストフィールドの幅と高さを設定する
SWFTextField->setColor() -- テキストフィールドの色を設定する
SWFTextField->setFont() -- テキストフィールドのフォントを設定する
SWFTextField->setHeight() -- このテキストフィールドのフォントの高さを設定する
SWFTextField->setIndentation() -- 最初の行の字下げを設定する
SWFTextField->setLeftMargin() -- テキストフィールドの左マージンの幅を設定する
SWFTextField->setLineSpacing() -- テキストフィールドの行間を設定する
SWFTextField->setMargins() -- テキストフィールドのマージン幅を設定する
SWFTextField->setName() -- 変数名を設定する
SWFTextField->setPadding() -- テキストフィールドのパディングを設定する
SWFTextField->setRightMargin() -- テキストフィールドの右マージンの幅を設定する
SWFVideoStream -- SWFVideoStream クラス
SWFVideoStream->__construct() -- SWFVideoStream オブジェクトを返す
SWFVideoStream->getNumFrames() -- 
SWFVideoStream->setDimension() -- 
ming_keypress -- keyPress(char) のアクションフラグを返す
ming_setcubicthreshold --  三次元の閾値を設定する
ming_setscale --  スケールを設定する
ming_setswfcompression -- SWF 出力の圧縮を設定する
ming_useconstants -- 定数プールを使用する
ming_useswfversion -- SWF のバージョンを設定する