SWFShape->addFill

(no version information, might be only in CVS)

SWFShape->addFill -- Ajoute un remplissage plein à la forme.

Description

void swfshape->addfill ( int red, int green, int blue [, int a])

void swfshape->addfill ( SWFbitmap bitmap [, int flags])

void swfshape->addfill ( SWFGradient gradient [, int flags])

swfshape->addfill() ajoute un remplissage plein à la forme. swfshape->addfill() accepte trois différents types d'arguments.

red, green, blue est une couleur (format RGB). Le dernier paramètre a est optionnel.

L'argument bitmap est un objet swfbitmap(). Le paramètre flags peut être l'un des suivants : SWFFILL_CLIPPED_BITMAP ou SWFFILL_TILED_BITMAP. Par défault, c'est SWFFILL_TILED_BITMAP. Je crois.

L'argument gradient est un objet swfgradient(). L'argument flags peut alors prendre l'une des valeurs suivantes : SWFFILL_RADIAL_GRADIENT ou SWFFILL_LINEAR_GRADIENT. Par défaut, c'est SWFFILL_LINEAR_GRADIENT. Cette fois ci, j'en suis sûr.

swfshape->addfill() retourne un objet swffill() à utiliser avec swfshape->setleftfill(), et swfshape->setrightfill() décrite un peu plus loin.

Voir aussi swfshape->setleftfill() et swfshape->setrightfill().

Ceci est un exemple simple qui affiche un cadre sur une bitmap. Ah, il y a un petit bug dans le lecteur Flash : il ne semble pas faire grand cas de la transformation de la seconde forme en morphing. Suivant les specs, la bitmap devrait s'étirer avec la forme dans cet exemple...

Exemple 1. Exemple avec swfshape->addfill()

<?php
  $p
= new SWFMorph();
  
$b = new SWFBitmap("alphafill.jpg");
  
// utilisez vos propres bitmaps!
  
$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);
  
// ces déplacements n'ont aucun effet
  
$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();
?>