SWFShape::addFill

(PHP 5 < 5.3.0, PECL ming SVN)

SWFShape::addFillAñade un relleno sólido a la forma

Descripción

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

Esta función ha sido declarada EXPERIMENTAL. Su funcionamiento, nombre y la documentación que le acompaña puede cambiar sin previo aviso en futuras versiones de PHP. Utilícela bajo su propia responsabilidad.

SWFShape::addFill() añade un relleno sólido a la lista de formas de los estilos de relleno. SWFShape::addFill() acepta tres tipos diferentes de argumentos.

red, green, blue es un color (modo RGB).

El argumento bitmap es un objeto SWFBitmap(). El argumento flags puede ser uno de los valores siguientes: SWFFILL_CLIPPED_BITMAP, SWFFILL_TILED_BITMAP, SWFFILL_LINEAR_GRADIENT o SWFFILL_RADIAL_GRADIENT. Por omisión es SWFFILL_TILED_BITMAP para SWFBitmap y SWFFILL_LINEAR_GRADIENT para SWFGradient.

El argumento gradient es un objeto SWFGradient(). El argumento flags puede ser uno de los valores siguientes: SWFFILL_RADIAL_GRADIENT o SWFFILL_LINEAR_GRADIENT. Por omisión es SWFFILL_LINEAR_GRADIENT. Estoy seguro de esto. De verdad.

SWFShape::addFill() devuelve un objeto SWFFill() para usarlo con las funciones SWFShape::setLeftFill() y SWFShape->setRightFill() descritas después.

Ejemplos

Este sencillo ejemplo dibujará un fotograma en un mapa de bits. Ah, hay otro error en el reproductor de flash- parece que no valora la segunda transformación del mapa de bits de la forma en un morph. Por si acaso, el mapa de bits debería extenderse con la forma en este ejemplo...

Ejemplo #1 Ejemplo de SWFShape::addFill()

<?php

$p 
= new SWFMorph();

$b = new SWFBitmap(file_get_contents("alphafill.jpg"));
// use su propio mapa de bits
$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);

// ¡estos dos no tienen efecto!
$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();
?>

Ver también