SWFShape
PHP Manual

SWFShape::addFill

(PHP 4 >= 4.0.5)

SWFShape::addFill塗りつぶし色を図形に追加する

説明

SWFFill SWFShape::addFill ( int $red , int $green , int $blue [, int $alpha = 255 ] )
SWFFill addFill ( SWFBitmap $bitmap [, int $flags ] )
SWFFill addFill ( SWFGradient $gradient [, int $flags ] )
警告

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

SWFShape::addFill() は、図形の塗りつぶし形式リストに 塗りつぶしを追加します。 SWFShape::addFill() は、 異なる三つの形式で引数を受け付けます。

redgreenblue は (RGB モードの) 色です。

引数 bitmapSWFBitmap() オブジェクトです。引数 flags は以下の定数 SWFFILL_CLIPPED_BITMAP、SWFFILL_TILED_BITMAP、SWFFILL_LINEAR_GRADIENT あるいは SWFFILL_RADIAL_GRADIENT のうちのいずれかです。 デフォルトは、SWFBitmap の場合は SWFFILL_TILED_BITMAP、 SWFGradient の場合は SWFFILL_LINEAR_GRADIENT です。

引数 gradientSWFGradient() オブジェクトです。引数 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($bSWFFILL_TILED_BITMAP);
$f->moveTo(-$width/2, -$height/4);
$f->scaleTo(1.00.5);
$s->setLeftFill($f);
$s->movePenTo(-$width/2, -$height/4);
$s->drawLine($width0);
$s->drawLine(0$height/2);
$s->drawLine(-$width0);
$s->drawLine(0, -$height/2);

$s $p->getShape2();
$f $s->addFill($bSWFFILL_TILED_BITMAP);

// これらの 2 つは何の効力も発揮しません!
$f->moveTo(-$width/4, -$height/2);
$f->scaleTo(0.51.0);

$s->setLeftFill($f);
$s->movePenTo(-$width/4, -$height/2);
$s->drawLine($width/20);
$s->drawLine(0$height);
$s->drawLine(-$width/20);
$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
PHP Manual