Hey, this is a great function that I spent a lot of time looking for.
What is it great for? Fading. It gives you the ability to fade any supported object (including images) totally or even specific color channels.
The project I am working on requires a series of images and backgrounds to fade into each other. As a bit of a noob, I found the doc here and it's example a little confusing.
I thought that to provide a value for a color channel would change it, but it doesn't.
To say, just change the alpha channel value, you can write it like this
<?php
$movie=new SWFMovie();
$movie->setDimension(700,150);
$movie->setBackground(0,255,255);
// image to add to movie
$img="images/example.jpg";
// add it image to movie and fade its alpha channel
$png = new SWFBitmap(fopen($img,"rb"));
$f1 = $movie->add($png);
$f1->multColor(1,1,1,0.5);
?>
This code will load the image and give it s 50% transperancy.
Similarly, one can fade a single color channel by reducing the value for that specific channel.
<?php
$ft->multColor(0.5,1,1);
?>
This makes the red channel (remember rgb) 50% transparent. You can put a 0 there to completely remove the red channel.
Hope this helps any fellow noobs trying to figure out ming out there.
SWFDisplayItem::multColor
(PHP 4 >= 4.0.5)
SWFDisplayItem::multColor — Multiplica la transformación de color del objeto
Descripción
$red
, float $green
, float $blue
[, float $a
] )Esta función ha sido declarada EXPERIMENTAL. Su comportamiento, su nombre y la documentación que le acompaña puede cambiar sin previo aviso en futuras versiones de PHP. Use esta función bajo su propio riesgo.
swfdisplayitem::multcolor() multiplica la transformación de color del objeto por los valores dados.
El objeto puede ser un swfshape(), un swfbutton(), un swftext() o un swfsprite(). Debe haber sido añadido usando swfmovie::add().
Parámetros
Estos parámetros son de tipo float entre 0.0 y 1.0:
-
red -
Valor del componente rojo
-
green -
Valor del componente verde
-
blue -
Valor del componente azul
-
a -
Valor del componente alfa
Valores devueltos
No devuelve ningún valor.
Ejemplos
Este sencillo ejemplo modificará la atmósfera del dibujo en Halloween (usar un dibujo apaisado o brillante).
Ejemplo #1 Ejemplo de swfdisplayitem::multcolor()
<?php
$b = new SWFBitmap(file_get_contents("backyard.jpg"));
// nota: use su propio dibujo :-)
$s = new SWFShape();
$s->setRightFill($s->addFill($b));
$s->drawLine($b->getWidth(), 0);
$s->drawLine(0, $b->getHeight());
$s->drawLine(-$b->getWidth(), 0);
$s->drawLine(0, -$b->getHeight());
$m = new SWFMovie();
$m->setDimension($b->getWidth(), $b->getHeight());
$i = $m->add($s);
for ($n=0; $n<=20; ++$n) {
$i->multColor(1.0-$n/10, 1.0, 1.0);
$i->addColor(0xff*$n/20, 0, 0);
$m->nextFrame();
}
header('Content-type: application/x-shockwave-flash');
$m->output();
?>
