©
This document uses PHP Chinese website manual Release
(PHP 5 <= 5.3.0, PECL ming SVN)
SWFDisplayItem::rotateTo — Rotates the object in global coordinates
$angle
)此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 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 = $x ;
$i -> y = $y ;
$i -> rot = $rot ;
$i -> s = $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 -> 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 ;
}
// 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 ();
?>