PHP  
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
search for in the  
<SWFMovieSWFShape->drawCurve>
Last updated: Mon, 16 Jul 2012

SWFShape->addFill

(no version information, might be only in CVS)

SWFShape->addFill -- Adds a solid fill to the shape

Description

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() 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). Last parameter a is optional.

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..

例子 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();
?>

See also SWFShape->setLeftFill() and SWFShape->setRightFill().




<SWFMovieSWFShape->drawCurve>
 Last updated: Mon, 16 Jul 2012
 
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: http://manual.phpv.net/
Last updated: Thu Jul 7 19:13:47 2005 CST