SWFDisplayItem::rotateTo

(PHP 5 < 5.3.0, PECL ming SVN)

SWFDisplayItem::rotateToRota el objeto en coordenadas globales

Descripción

SWFDisplayItem::rotateTo ( float $angle ) : void
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.

swfdisplayitem::rotateto() establece la rotación deel objeto actual a angle grados en coordenadas globales.

El objeto puede ser un swfshape(), un swfbutton(), un swftext() o un swfsprite(). Debe haber sido añadido usando swfmovie::add().

Valores devueltos

No devuelve ningún valor.

Ejemplos

Este ejemplo traa tres cadenas rotantes desde el fondo hacia el primer plano. Muy bonito.

Ejemplo #1 Ejemplo de swfdisplayitem::rotateto()

<?php
$thetext 
=  "ming!";

$f = new SWFFont("Bauhaus 93.fdb");

$m = new SWFMovie();
$m->setRate(24.0);
$m->setDimension(24001600);
$m->setBackground(0xff0xff0xff);

// ¡las funciones con un enorme número de argumentos
// arbitrarios siempre es una buena idea!  ¡De verdad!

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);

  
// we can add properties just like a normal PHP var,
  // as long as the names aren't already used.
  // e.g., we can't set $i->scale, because that's a function

  
$i $m->add($t);
  
$i->$x;
  
$i->$y;
  
$i->rot $rot;
  
$i->$scale;
  
$i->rotateTo($rot);
  
$i->scale($scale$scale);

  
// pero los cambios son locales a la función, por lo que tenemos que
  // devolver el objeto cambiado. un poco raro..

  
return $i;
}

function 
step($i
{
  
$oldrot $i->rot;
  
$i->rot 19*$i->rot/20;
  
$i->= (19*$i->1200)/20;
  
$i->= (19*$i->800)/20;
  
$i->= (19*$i->1.0)/20;

  
$i->rotateTo($i->rot);
  
$i->scaleTo($i->s$i->s);
  
$i->moveTo($i->x$i->y);

  return 
$i;
}

// ¿ves? seguro que se gana en legibilidad:

$i1 text(0xff0x330x330xff90012008000.03$thetext);
$i2 text(0x000x330xff0x7f, -56012008000.04$thetext);
$i3 text(0xff0xff0xff0x9f18012008000.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();
?>

Ver también