サンプル 03: 矩形の移動


ソースは以下になります。コメントの形で説明しましょう。

 
     1  #!/usr/local/bin/ruby
     2
     3  # 一つのShapeでMovieを作るテスト
     4
     5  require 'ming'
     6  # include Ming
     7
     8  # set_scale(1.0)
     9
    10  m = SWFMovie.new;
    11  m.setDimension(400,400);
    12  m.setRate(10);
    13
    14  s = SWFShape.new;
    15  s.setLine(1, 0xff, 0, 0);
    16  s.movePenTo(-100,-100);
    17  s.drawLine(200, 0);
    18  s.drawLine(0, 200);
    19  s.drawLine(-200, 0);
    20  s.drawLine(0, -200);         ← ここまででsに四角を描画する
    21
    22  i = m.add(s);                ← 追加する
    23
    24  for j in (0 .. 360)          ← 繰り返し
    25    m.nextFrame;               ← 次のフレームに進める
    26    i.move(1,1);               ← 右下の1ドット移動させる
    27    i.rotate(4);               ← 4度回転させる
    28  end
    29
    30  m.save('example03.swf');


動きのある例を示します。動きがあるということは、フレームを進めて 次々に描写していくという手順になります。
ここで、SWFMovie上に置いたSWFShapeオブジェクトに対して「移動」「回転」の 操作ができるわけですが、その操作は SWFDisplayItemのメソッド である点が特徴です。このオブジェクトは、SWFMovie::addメソッドの返り値 として得られます。
Masahiko KIMOTO <kimoto@ohnolab.org>
Last modified: Fri Dec 26 18:26:13 JST 2003