この単純な例は、赤い四角形がウィンドウを横切るものです。
例1 swfaction() の例
<?php
  $s = new SWFShape();
  $f = $s->addFill(0xff, 0, 0);
  $s->setRightFill($f);
  $s->movePenTo(-500, -500);
  $s->drawLineTo(500, -500);
  $s->drawLineTo(500, 500);
  $s->drawLineTo(-500, 500);
  $s->drawLineTo(-500, -500);
  $p = new SWFSprite();
  $i = $p->add($s);
  $i->setDepth(1);
  $p->nextFrame();
  for ($n=0; $n<5; ++$n) {
    $i->rotate(-15);
    $p->nextFrame();
  }
  $m = new SWFMovie();
  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(6000, 4000);
  $i = $m->add($p);
  $i->setDepth(1);
  $i->moveTo(-500,2000);
  $i->setName("box");
  $m->add(new SWFAction("/box.x += 3;"));
  $m->nextFrame();
  $m->add(new SWFAction("gotoFrame(0); play();"));
  $m->nextFrame();
  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>
この単純な例は、画面上のマウスを追いかけます。
例2 swfaction() の例
<?php
  $m = new SWFMovie();
  $m->setRate(36.0);
  $m->setDimension(1200, 800);
  $m->setBackground(0, 0, 0);
  /* マウスを追いかけるスプライト - 空ですが、マウスを追いかけるために
     その x 座標と y 座標を取得することが可能です */
  $i = $m->add(new SWFSprite());
  $i->setName('mouse');
  $m->add(new SWFAction("
    startDrag('/mouse', 1); /* '1' は、スプライトをマウスにロックします */
  "));
  /* これらは単なる四角形なので、アンチエイリアスを off にしたほうがよいでしょう */
  $m->add(new SWFAction("
    this.quality = 0;
  "));
  /* 変形ボックス */
  $r = new SWFMorph();
  $s = $r->getShape1();
  /* これは通常の図形から背景よりになることに注意しましょう。なぜかはわかりません */
  $s->setLeftFill($s->addFill(0xff, 0xff, 0xff));
  $s->movePenTo(-40, -40);
  $s->drawLine(80, 0);
  $s->drawLine(0, 80);
  $s->drawLine(-80, 0);
  $s->drawLine(0, -80);
  $s = $r->getShape2();
  $s->setLeftFill($s->addFill(0x00, 0x00, 0x00));
  $s->movePenTo(-1, -1);
  $s->drawLine(2, 0);
  $s->drawLine(0, 2);
  $s->drawLine(-2, 0);
  $s->drawLine(0, -2);
  /* 変形ボックスのためのスプライトコンテナ
     これは、単にボックスを変形させる際の時間軸にすぎません */
  $box = new SWFSprite();
  $box->add(new SWFAction("
    stop();
  "));
  $i = $box->add($r);
  for ($n=0; $n<=20; ++$n) {
    $i->setRatio($n/20);
    $box->nextFrame();
  }
  /* このスプライトにより、同じアクションコードを何度も実行させることが可能となります */
  $cell = new SWFSprite();
  $i = $cell->add($box);
  $i->setName('box');
  $cell->add(new SWFAction("
    setTarget('box');
    /* ...x は、親の x 座標を意味します。すなわち (..).x ということです */
    dx = (/mouse.x + random(6)-3 - ...x)/5;
    dy = (/mouse.y + random(6)-3 - ...y)/5;
    gotoFrame(int(dx*dx + dy*dy));
  "));
  $cell->nextFrame();
  $cell->add(new SWFAction("
    gotoFrame(0);
    play();
  "));
  $cell->nextFrame();
  /* 最後に、セルをムービーに追加します */
  for ($x=0; $x<12; ++$x) {
    for ($y=0; $y<8; ++$y) {
      $i = $m->add($cell);
      $i->moveTo(100*$x+50, 100*$y+50);
    }
  }
  $m->nextFrame();
  $m->add(new SWFAction("
    gotoFrame(1);
    play();
  "));
  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>
上と同じですが、きれいな色のボールを使用します...
例3 swfaction() の例
<?php
  $m = new SWFMovie();
  $m->setDimension(11000, 8000);
  $m->setBackground(0x00, 0x00, 0x00);
  $m->add(new SWFAction("
this.quality = 0;
/frames.visible = 0;
startDrag('/mouse', 1);
  "));
  // マウスを追いかけるスプライト
  $t = new SWFSprite();
  $i = $m->add($t);
  $i->setName('mouse');
  $g = new SWFGradient();
  $g->addEntry(0, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.1, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.5, 0xff, 0xff, 0xff, 0x5f);
  $g->addEntry(1.0, 0xff, 0xff, 0xff, 0);
  // gradient を指定した図形
  $s = new SWFShape();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.03);
  $s->setRightFill($f);
  $s->movePenTo(-600, -600);
  $s->drawLine(1200, 0);
  $s->drawLine(0, 1200);
  $s->drawLine(-1200, 0);
  $s->drawLine(0, -1200);
  // 複数の色を使用するため、スプライトにする必要があります
  $p = new SWFSprite();
  $p->add($s);
  $p->nextFrame();
  // 図形をここに入れ、各フレームで別の色を使用します
  $q = new SWFSprite();
  $q->add(new SWFAction("gotoFrame(random(7)+1); stop();"));
  $i = $q->add($p);
  $i->multColor(1.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->nextFrame();
  $i->multColor(1.0, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 0.5, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 1.0);
  $q->nextFrame();
  // 最後に、アクションコードにこれを含めます
  $p = new SWFSprite();
  $i = $p->add($q);
  $i->setName('frames');
  $p->add(new SWFAction("
dx = (/:mousex-/:lastx)/3 + random(10)-5;
dy = (/:mousey-/:lasty)/3;
x = /:mousex;
y = /:mousey;
alpha = 100;
  "));
  $p->nextFrame();
  $p->add(new SWFAction("
this.x = x;
this.y = y;
this.alpha = alpha;
x += dx;
y += dy;
dy += 3;
alpha -= 8;
  "));
  $p->nextFrame();
  $p->add(new SWFAction("prevFrame(); play();"));
  $p->nextFrame();
  $i = $m->add($p);
  $i->setName('frames');
  $m->nextFrame();
  $m->add(new SWFAction("
lastx = mousex;
lasty = mousey;
mousex = /mouse.x;
mousey = /mouse.y;
++num;
if (num == 11)
  num = 1;
removeClip('char' & num);
duplicateClip(/frames, 'char' & num, num);
  "));
  $m->nextFrame();
  $m->add(new SWFAction("prevFrame(); play();"));
  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>
NPO法人の設立(東京・大阪) 東京や大阪などNPO法人を設立する場合の注意点等を紹介
不動産・賃貸・マンション 不動産・賃貸・マンションに関する用語集です。
堺市の入院・内科大阪の賃貸探し 大阪で賃貸を探している方は大阪ホームへ
東京の賃貸マンション 東京で賃貸を探すなら東京賃貸.orgへ