Forum und email

SWFShape->addFill()

(PHP 4 >= 4.0.5)

SWFShape->addFill() — Adds a solid fill to the shape

Description

SWFShape
SWFFill addFill ( int $red , int $green , int $blue [, int $a ] )
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). 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..

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($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);

// these two have no effect!
$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();
?>