Forum und email

SWFDisplayItem->rotateTo()

(PHP 4 >= 4.0.5)

SWFDisplayItem->rotateTo() — Rotates the object in global coordinates

Description

SWFDisplayItem
void rotateTo ( float $angle )
Warning

Deze functie is EXPERIMENTEEL. Dat betekent, dat het gedrag van deze functie, deze functienaam, in concreto ALLES dat hier gedocumenteerd is in een toekomstige uitgave van PHP ZONDER WAARSCHUWING kan veranderen. Wees gewaarschuwd, en gebruik deze functie op eigen risico.

swfdisplayitem->rotateto() set the current object rotation to angle degrees in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Return Values

No value is returned.

Voorbeelden

This example bring three rotating string from the background to the foreground. Pretty nice.

Example#1 swfdisplayitem->rotateto() example

<?php
$thetext 
=  "ming!";

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

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

// functions with huge numbers of arbitrary
// arguments are always a good idea!  Really!

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

  
// but the changes are local to the function, so we have to
  // return the changed object.  kinda weird..

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

// see?  it sure paid off in legibility:

$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();
?>