LXXXV. 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 はメンテナンスが継続されています。 使用したい機能がある場合には、我々、 ming@opaque.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 組み込みでコンパイルされているか、実行時に動的にロードされている場合のみ 使用可能です。

Ming は、PHP に 13 個の新規オブジェクトを追加します。これらは全て、 メソッドと属性を有しています。これらを使用するには、オブジェクト について知る必要があります。

swfshape

swffill

swfgradient

swfbitmap

swftext

swftextfield

swffont

swfdisplayitem

swfmovie

swfbutton

swfaction

swfmorph

swfsprite

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