出力したラインアートのswf (LineArt.swf)

メインクラスのソースコード (LineArt.as)


package {
  import flash.display.*;
  import flash.events.*;
  import flash.utils.*;
 
  public class LineArt extends Sprite {
 
    private var movingLine:MovingLine;
    private var line:Shape;
 
    public function LineArt() {
 
      movingLine = new MovingLine(13, 17, 23, 31);
      line = new Shape();
      addChild(line);
 
      var timer:Timer = new Timer(100, 0);
      timer.addEventListener(TimerEvent.TIMER, onMove);
      timer.start();
    }
 
    private function onMove(evt:TimerEvent):void {
 
      // 古い描画内容を消去
      line.graphics.clear();
 
      // 移動させる
      movingLine.move();
 
      // 動く直線
      line.graphics.lineStyle(2, 0xff0000);
      line.graphics.moveTo(movingLine.x1, movingLine.y1);
      line.graphics.lineTo(movingLine.x2, movingLine.y2);
      line.graphics.lineStyle(2, 0x0000ff);
 
      // ぐねぐね曲線
      line.graphics.moveTo(0, 0);
      line.graphics.curveTo(movingLine.x1, movingLine.y1, movingLine.x2, movingLine.y2);
    }
 
  }
}

動く直線クラスのソースコード (MovingLine.as)


package {
 
  public class MovingLine {
 
    public var x1:int = 0;
    public var y1:int = 0;
    public var x2:int = 0;
    public var y2:int = 0;
 
    private var v:int = 5;
    private var vx1:int = v;
    private var vy1:int = -v;
    private var vx2:int = -v;
    private var vy2:int = v;
 
    private var xmin:int = 0;
    private var ymin:int = 0;
    private var xmax:int = 200;
    private var ymax:int = 150;
 
    public function MovingLine(x1:int, y1:int, x2:int, y2:int) {
 
      this.x1 = x1;
      this.y1 = y1;
      this.x2 = x2;
      this.y2 = y2;
    }
 
    public function move():void {
 
      x1 += vx1;
      y1 += vy1;
      x2 += vx2;
      y2 += vy2;
 
      if(x1 <= xmin){
        vx1 = v;
      }
      if(x1 >= xmax){
        vx1 = -v;
      }
      if(y1 <= ymin){
        vy1 = v;
      }
      if(y1 >= ymax){
        vy1 = -v;
      }
      if(x2 <= xmin){
        vx2 = v;
      }
      if(x2 >= xmax){
        vx2 = -v;
      }
      if(y2 <= ymin){
        vy2 = v;
      }
      if(y2 >= ymax){
        vy2 = -v;
      }
    }
 
  }
 
}

コンパイル

LineArt.as と MovingLine.as を同じディレクトリに置いて、そのディレクトリで以下のように mxmlc.exe を実行。


C:\>mxmlc -default-size 240 240 -default-frame-rate 30 -default-background-color 0x000000 LineArt.as

すると、LineArt.swf が作られる。

参考

tags: zlashdot Flash Flash Flex

Posted by NI-Lab. (@nilab)