文字
分享

SWFShape::addFill

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::addFillAdds a solid fill to the shape

说明

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

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

SWFShape::addFill() adds a solid fill to the shape's list of fill styles. SWFShape::addFill() accepts three different types of arguments.

red, green, blue is a color (RGB mode).

The bitmap argument is an SWFBitmap() object. The flags argument can be one of the following values: SWFFILL_CLIPPED_BITMAP, SWFFILL_TILED_BITMAP, SWFFILL_LINEAR_GRADIENT or SWFFILL_RADIAL_GRADIENT. Default is SWFFILL_TILED_BITMAP for SWFBitmap and SWFFILL_LINEAR_GRADIENT for SWFGradient.

The gradient argument is an SWFGradient() object. The flags argument can be one of the following values : SWFFILL_RADIAL_GRADIENT or SWFFILL_LINEAR_GRADIENT. Default is SWFFILL_LINEAR_GRADIENT. I'm sure about this one. Really.

SWFShape::addFill() returns an SWFFill() object for use with the SWFShape::setLeftFill() and SWFShape::setRightFill() functions described below.

范例

This simple example will draw a frame on a bitmap. Ah, here's another buglet in the flash player- it doesn't seem to care about the second shape's bitmap's transformation in a morph. According to spec, the bitmap should stretch along with the shape in this example..

Example #1 SWFShape::addFill() example

<?php

$p 
= new  SWFMorph ();

$b  = new  SWFBitmap ( file_get_contents ( "alphafill.jpg" ));
// use your own bitmap
$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 );

// these two have no effect!
$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() - Sets left rasterizing color
  • SWFShape::setRightFill() - Sets right rasterizing color
上一篇:SWFShape下一篇:SWFShape::__construct