The SWFGradient class

(PHP 5 < 5.3.0, PECL ming SVN)

¼ò½é

SWFGradient.

ÀàÕªÒª

SWFGradient {
/* ·½·¨ */
addEntry ( float $ratio , int $red , int $green , int $blue [, int $alpha = 255 ] ) : void
__construct ( void )
}

Table of Contents

User Contributed Notes

mabuzzer at hotmail dot com 13-Mar-2002 10:49
Gradient fills are implemented in SWF as a color ramp, mapped onto a square from (-16384, -16384) to (16384, 16384) TWIPS.

The following code creates a movie, displaying a square with a gradient fill, correctly scaled to the size of the shape.

<?php

//Set the scale to TWIPS rather than PIXELS
ming_setscale(1.0);

//Create the movie
$m = new SWFMovie();
$m->setRate(12.0);
$m->setDimension(400,400);
$m->setBackground(0xff, 0xff, 0xff);

//Width and height of rectangle
$sx = 300;
$sy = 300;

//Create rectangle
$s = new SWFShape();

//Gradient file stuff here...
$g = new SWFGradient();
$g->addEntry(0.0, 0x00, 0x00, 0xff);    // Start off Blue
$g->addEntry(1.0, 0xff, 0xff, 0x00);    // Finish off Yellow

// Add gradient fill to the shape
$f = $s->addFill($g);

//Centre the gradient fill against the rectangle
$f->moveTo($sx/2, $sy/2);
//Scale it to the shape, so that the entire gradient fits inside the shape
$f->scaleTo($sx/32768, 1);

// Set the shapes fill to be the added gradient fill
$s->setRightFill($f);

//Draw the rectangle
$s->drawLine($sx, 0);
$s->drawLine(0, $sy);
$s->drawLine(-$sx, 0);
$s->drawLine(0, -$sy);

//Add the shape to the movie
$sh = $m->add($s);
$sh->moveTo(50, 50);

// Output the movie
header("Content-type: application/x-shockwave-flash");
$m->output();

?>

More info about this can be obtained from
http://www.openswf.org/spec/SWFfilereference.html#h4FillTypes