SWFShape::addFill

Adds a solid fill to the shape

&reftitle.description; `SWFFill` `SWFShape::addFill` `int` `red` `int` `green` `int` `blue` `int` `alpha` 255 `SWFFill` `addFill` `SWFBitmap` `bitmap` `int` `flags` `SWFFill` `addFill` `SWFGradient` `gradient` `int` `flags` &warn.experimental.func;

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

&reftitle.examples;

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

### `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();
    ?>

&reftitle.seealso;

- `SWFShape::setLeftFill`
- `SWFShape::setRightFill`