出力したラインアートの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)