1 #!/usr/local/bin/ruby
2
3 require "ming";
4
5 # 画面をはね回るボールを作ってみましょう。
6
7 # ballといっても四角の組み合わせなんだけれどね。
8 ball=SWFMovieClip.new;
9 s=SWFShape.new;
10 s.setLine(2,0,0,0xff);
11 s.movePenTo(-20,-20);
12 s.drawLine(40,0);
13 s.drawLine(0,40);
14 s.drawLine(-40,0);
15 s.drawLine(0,-40);
16 s.setLine(2,0xff,0,0);
17 s.movePenTo(0,-25);
18 s.drawLine(25,25);
19 s.drawLine(-25,25);
20 s.drawLine(-25,-25);
21 s.drawLine(25,-25); ← ここまででボールが書かれたShapeを作成
22
23 ball.add(SWFAction.new(" ← ballオブジェクトにメソッドを追加
24 vx=8;vy=6;
25 function move() { ← moveメソッド
26 bx=_x;
27 by=_y;
28 if ((bx+vx) > 400 || (bx+vx) < 0) {vx *= -1;} else
29 {bx += vx;}
30 if ((by+vy) > 400 || (by+vy) < 0) {vy *= -1;} else
31 {by += vy;}
32 _x = bx;
33 _y = by; ← 関数内の処理はいいよね。画面内を跳ねる。
34 }
35 "));
36
37 di=ball.add(s); ← ShapeをMovieClipに追加
38 di.moveTo(0,0);
39 ball.nextFrame; ← nextFrameしないとActionが有効にならない。
40
41 m=SWFMovie.new;
42 m.setDimension(400,400);
43 m.setRate(20);
44
45 di = m.add(ball); ← ballオブジェクトを追加
46 di.setName("ball"); ← オブジェクト(MovieClip)に"ball"という名前をつける
47 di.moveTo(0,200); ← 初期位置に移動
48
49 m.nextFrame;
50
51 m.add(SWFAction.new("_root.ball.move();")); ← 移動する関数を実行
52 m.nextFrame;
53 m.add(SWFAction.new("gotoAndPlay(_currentFrame-1);")); ← 一つ前に戻る
54
55 m.save("example11.swf");
|