文字

SWFDisplayItem::rotateTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::rotateToRotates the object in global coordinates

说明

void SWFDisplayItem::rotateTo ( float $angle )
Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

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() .

返回值

没有返回值。

范例

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 ( 2400 1600 );
$m -> setBackground ( 0xff 0xff 0xff );

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

参见

  • SWFDisplayItem::rotate() - Rotates in relative coordinates
上一篇: 下一篇: