(PHP 5 < 5.3.0, PECL ming SVN)
SWFShape::addFill — Añade un relleno sólido a la forma
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.
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($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);
// ¡estos dos no tienen efecto!
$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();
?>