SWFDisplayItem->rotateTo

(no version information, might be only in CVS)

SWFDisplayItem->rotateTo -- Tourne un objet en angle absolu

Description

void swfdisplayitem->rotateto ( float degrees )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

SWFDisplayItem->rotateTo() tourne l'objet jusqu'à l'angle absoludegrees, en degrés.

L'objet peut être swfshape(), swfbutton(), swftext() ou swfsprite(). Il doit avoir été ajouté à une animation avec la fonction swfmovie->add().

Cet exemple amène trois chaînes tournoyantes depuis le fond de l'écran. Plutôt sympa.

Exemple 1. Exemple avec SWFDisplayItem->rotateTo()

<?php
$thetext
=  "ming!";
$f = new SWFFont("Bauhaus 93.fdb");
$m = new SWFMovie();
$m->setRate(24.0);
$m->setDimension(2400, 1600);
$m->setBackground(0xff, 0xff, 0xff);
// Les fonctions avec un nombre d'arguments sont vraiment une bonne idée.
// Sincèrement!
function text($r, $g, $b, $a, $rot, $x, $y, $scale, $string)
{
  global
$f, $m;
  
$t = new SWFText();
  
$t->setFont($f);
  
$t->setColor($r, $g, $b, $a);
  
$t->setHeight(960);
  
$t->moveTo(-($f->getWidth($string))/2, $f->getAscent()/2);
  
$t->addString($string);
  
// On peut ajouter des propriétés comme pour une variable PHP standard
  // tant que les noms ne sont pas déjà pris.
  // e.g., vous ne pouvez pas utiliser $i->scale, car c'est une fonction.
  
$i = $m->add($t);
  
$i->x = $x;
  
$i->y = $y;
  
$i->rot = $rot;
  
$i->s = $scale;
  
$i->rotateTo($rot);
  
$i->scale($scale, $scale);
  
// mais les modifications sont locales à une fonction, donc il faut
  // retourner l'objet modifié. Pas pratique...
  
return $i;
}
function
step($i)
{
  
$oldrot = $i->rot;
  
$i->rot = 19*$i->rot/20;
  
$i->x = (19*$i->x + 1200)/20;
  
$i->y = (19*$i->y + 800)/20;
  
$i->s = (19*$i->s + 1.0)/20;
  
$i->rotateTo($i->rot);
  
$i->scaleTo($i->s, $i->s);
  
$i->moveTo($i->x, $i->y);
  return
$i;
}
// Alors? &Ccedil;a valait la peine, non?
$i1 = text(0xff, 0x33, 0x33, 0xff, 900, 1200, 800, 0.03, $thetext);
$i2 = text(0x00, 0x33, 0xff, 0x7f, -560, 1200, 800, 0.04, $thetext);
$i3 = text(0xff, 0xff, 0xff, 0x9f, 180, 1200, 800, 0.001, $thetext);
for(
$i=1; $i<=100; ++$i)
{
  
$i1 = step($i1);
  
$i2 = step($i2);
  
$i3 = step($i3);
  
$m->nextFrame();
}
header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Voir aussi swfdisplayitem->rotate().

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:02:17