Учебник по основам PHP. PHPBeginner



         

Ming для Flash - часть 17


Приведенный ниже пример отслеживает перемещение мыши по экрану.

<?php
$m = new SWFMovie(): $ra->setRate(36.0);
$m->setDimension(]200 800): $m->setBackgrouncK(), 0. 0):
/* пустой спрайт для отслеживания х и у координат мыши */
$i = $m->add(new SWFSpriteO): $1->setName('mouse');
$m->add(new SWFActionC' startDrag('/mouse'. 1): ")):
// antialiasing можно выключить для квадратов.
$m->add(new SWFActionC' this quality = 0. ')):
$r = new SWFMorph() :/* morphing box */ $s = $r->getShapel():
$s->setLeftFill(Ss->addFill(Oxff. Oxff. Oxff)):
$s->movePenTo(-40. -40). Ss->drawLine(80. 0).
$s->drawLine(0. 80). $s->drawLine(-80. 0);
$s->drawl_me(0. -80): $s = $r->getShape2():
Ss->setLeftFill($s->addFill{OxOO. 0x00. 0x00)):
$s->movePenTo(-l. -1). .
$s->drawLine(2. 0): $s->drawLine(0. 2):
$s->drawLine(-2. 0). $s->drawl_ine(0. -2).
$box = new SWFSprite():
$box->add(new SWFActionC' stop(): ")):
$1 = $box->add($r) for($n=0; $n<-20: ++$n) {
$1->setRatio($n/20).
$box->nextFrame(): )
/* споайт контейнер позволяет многократно
использовать действие */
Scell - new SWFSpnteO: $1 - $cell->add($box):
$i->setNarne( 'box'):
$cell->add(new SWFActionC'
setTarget('box'):
/* x - родительская координата, i.e. (..) x */
dx = (/mouse x + randoni(6)-3 - . ,x)/5
dy = (/mouse.у + random(6)-3 - .. y)/5:
gotoFramednt(dx*dx + dy*dy)): ")):
$cell->nextFrame():
Scell->add(new SWFActionC' gotoFrame(O): playO; "));
Scell->nextFrame():
/* добавим ячейки в анимацию */ for($x-0: $x<12: ++$х)
{ for($y-0- $y<8: ++$у) { $i = $m->add($cell):
$i->moveTo(100*$x+50. 100*$у+50): } }
$in->nextrrane():
$m->add(new SWFAcbon'" qotoFrame(l): playO. ")):
heacter('Content-type, application/x shockwave-flash1):
$m->output(): ?>

Тот же сценарий, но с цветными шариками...

<?рhр $т - new SWFMovie():
$m->setDimension(11000. 8000):
$m-->setBackground(OxOO. 0x00. 0x00):
$m >add(new SWFActionC' this.quality = 0
/frames.visible = 0: startDrag\'/mouse'. 1); ")):
// mouse tracking sprite $t nev. SWFSpnte():
$1 = $m->add($t): $1->setNdme('mouse'):
$g = new SWFGradientO $g->addEntry
(0. Oxff. Oxff. Oxff. Oxff). $g->addEntry
(0.1. Oxff. Oxff. Oxft. Oxff)' $g->addEntry
(0 5. Oxff. Oxff. Oxff. Ox5f): $g->addEntry
(1.0. Oxff. Oxff. Oxff. 0).
// gradient shape thing $ь - nev» SWFShape() .
$f - $s->addFill
($g. SWFFILL_RADiAL_GRADIENT):
$f->scaleTo(0.03): $s->setRightFni($f):
$5->movePenTo(-600. -600): $s->
drawLine(1200. 0): $s->drawLine
(0. 1200): $s->drawLine(-1200. 0):
$s->drawLine(0. -1200):
// need to make this a sprite so we
can multColor it $p = new SWFSprite():
$p->add($s): $p->nextFrame();
II put the shape in here, each frame
a different color Sq = new SWFSprite() :
$q->add(new SWFAction("gotoFrame(random
(7)+l). stop():")): $1 = $q->add($p);
$i->multColor(l.0. 1.0. 1.0): $q->nextFrame():
$i->multColor(1.0. 0.5. 0.5): $q->nextFrame().
$i->multColor(1.0. 0.75. 0.5): $q->nextFramef):
$i->multColor(1.0. 1.0. 0.5): $q->nextFrame():
$l->multColor(0.5. 1.0. 0.5): $q->nextFrame():
$i->multColor(0.5. 0.5. 1.0): $q->nextFrame():
$i->multfolor(1.0. 0.5. 1.0): $q->nextFrame().
// finally, this one contains the action code
$p = new SWFSpriteO: $1 = $p->add($q):
$i->setNameOframes'): $p->add(new SWFAction()
dx = (/:mousex-/:lastx)/3 + random(10)-5:
dy = (/:mousey-/:lasty)/3: x = /.mousex:
у = /:mousey; alpha = 100: ")):
$p->nextFrame(); $p->add(new SWFActionC
this.x = x: this у = у: this.alpha alpha:
x += dx: у += dy: dy +- 3; alpha -= 8; ")):
$p->nextFrame(). $p->add(new
SWFActlonC'prevFrame(): play():")):
$p->nextFrame(). Si = $m->add($p):
$1 ->setName('frames'): $m->nextFrame().
$m->add(new SWFActlonC1
lastx - mousex: lasty = mousey:
mousex - /mouse.x: mousey = /mouse.у: ++num:
if(num == 11) num = 1: removedip('char' & num):
duplicateClTp(/frames. 'char' & num. num): ")):
$m->nextFrame():
$m->add(new SWFActlonC'prevFrame(). play():")):
headert'Content-type:
application/x-shockwave-flash'): $m->output(): ?>




Содержание  Назад  Вперед