SWFShape->addFill
(no version information, might be only in CVS)
SWFShape->addFill -- 塗りつぶし色を図形に追加する
説明
SWFFill
SWFShape->addFill ( int red, int green, int blue [, int a] )
SWFFill
SWFShape->addFill ( SWFBitmap bitmap [, int flags] )
SWFFill
SWFShape->addFill ( SWFGradient gradient [, int flags] )
警告 |
この関数は、
実験的 なものです。この関数の動作・
名前・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP
のリリースにおいて変更される可能性があります。
この関数は自己責任で使用してください。 |
SWFShape->addFill() は、図形の塗りつぶし形式リストに
塗りつぶしを追加します。SWFShape->addFill() は
ことなる 3 つの形式で引数を受け付けます。
red、green、blue
は (RGB モードの) 色です。最後のパラメータ a
はオプションです。
引数 bitmap は SWFBitmap()
オブジェクトです。引数 flags は以下の定数
SWFFILL_CLIPPED_BITMAP、SWFFILL_TILED_BITMAP、SWFFILL_LINEAR_GRADIENT
あるいは SWFFILL_RADIAL_GRADIENT のうちのいずれかです。
デフォルトは、SWFBitmap の場合は SWFFILL_TILED_BITMAP、
SWFGradient の場合は SWFFILL_LINEAR_GRADIENT です。
引数 gradient は SWFGradient()
オブジェクトです。引数 flags は以下の定数
SWFFILL_RADIAL_GRADIENT あるいは SWFFILL_LINEAR_GRADIENT のうちの
いずれかです。デフォルトは SWFFILL_LINEAR_GRADIENT で、
これは確実です。
SWFShape->addFill() は、以下で説明する
SWFShape->setLeftFill() および
SWFShape->setRightFill() 関数で使用する
SWFFill() オブジェクトを返します。
この単純な例ではビットマップ上に枠を描きます。あぁ、flash player には
もうひとつおかしなところがありました - morph の場合、2 番目の図形の
ビットマップの変換は考慮されないようです。そのため、この例のように
ビットマップは図形にあわせて伸びてしまいます...。
例 1. SWFShape->addFill() の例
<?php
$p = new SWFMorph();
$b = new SWFBitmap(file_get_contents("alphafill.jpg")); // あなた自身のビットマップを使用します $width = $b->getWidth(); $height = $b->getHeight();
$s = $p->getShape1(); $f = $s->addFill($b, SWFFILL_TILED_BITMAP); $f->moveTo(-$width/2, -$height/4); $f->scaleTo(1.0, 0.5); $s->setLeftFill($f); $s->movePenTo(-$width/2, -$height/4); $s->drawLine($width, 0); $s->drawLine(0, $height/2); $s->drawLine(-$width, 0); $s->drawLine(0, -$height/2);
$s = $p->getShape2(); $f = $s->addFill($b, SWFFILL_TILED_BITMAP);
// これらの 2 つは何の効力も発揮しません! $f->moveTo(-$width/4, -$height/2); $f->scaleTo(0.5, 1.0);
$s->setLeftFill($f); $s->movePenTo(-$width/4, -$height/2); $s->drawLine($width/2, 0); $s->drawLine(0, $height); $s->drawLine(-$width/2, 0); $s->drawLine(0, -$height);
$m = new SWFMovie(); $m->setDimension($width, $height); $i = $m->add($p); $i->moveTo($width/2, $height/2);
for ($n=0; $n<1.001; $n+=0.03) { $i->setRatio($n); $m->nextFrame(); }
header('Content-type: application/x-shockwave-flash'); $m->output(); ?>
|
|
SWFShape->setLeftFill() および
SWFShape->setRightFill() も参照ください。