SWFDisplayItem->setRatio

Sets the object's ratio ()
void swfdisplayitem->setratio ( float ratio )

警告:

本函数是实验性的。本函数的行为,包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。

swfdisplayitem->setratio() sets the object's ratio to ratio. Obviously only useful for morphs.

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

This simple example will morph nicely three concentric circles.

例 1137. swfdisplayitem->setname() example

<?php

 $p
= new SWFMorph();

 
$g = new SWFGradient();
 
$g->addEntry(0.0, 0, 0, 0);
 
$g->addEntry(0.16, 0xff, 0xff, 0xff);
 
$g->addEntry(0.32, 0, 0, 0);
 
$g->addEntry(0.48, 0xff, 0xff, 0xff);
 
$g->addEntry(0.64, 0, 0, 0);
 
$g->addEntry(0.80, 0xff, 0xff, 0xff);
 
$g->addEntry(1.00, 0, 0, 0);

 
$s = $p->getShape1();
 
$f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
 
$f->scaleTo(0.05);
 
$s->setLeftFill($f);
 
$s->movePenTo(-160, -120);
 
$s->drawLine(320, 0);
 
$s->drawLine(0, 240);
 
$s->drawLine(-320, 0);
 
$s->drawLine(0, -240);

 
$g = new SWFGradient();
 
$g->addEntry(0.0, 0, 0, 0);
 
$g->addEntry(0.16, 0xff, 0, 0);
 
$g->addEntry(0.32, 0, 0, 0);
 
$g->addEntry(0.48, 0, 0xff, 0);
 
$g->addEntry(0.64, 0, 0, 0);
 
$g->addEntry(0.80, 0, 0, 0xff);
 
$g->addEntry(1.00, 0, 0, 0);

 
$s = $p->getShape2();
 
$f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
 
$f->scaleTo(0.05);
 
$f->skewXTo(1.0);
 
$s->setLeftFill($f);
 
$s->movePenTo(-160, -120);
 
$s->drawLine(320, 0);
 
$s->drawLine(0, 240);
 
$s->drawLine(-320, 0);
 
$s->drawLine(0, -240);

 
$m = new SWFMovie();
 
$m->setDimension(320, 240);
 
$i = $m->add($p);
 
$i->moveTo(160, 120);

 for (
$n=0; $n<=1.001; $n+=0.01) {
   
$i->setRatio($n);
   
$m->nextFrame();
 }

 
header('Content-type: application/x-shockwave-flash');
 
$m->output();
?>