マウスでクリックした場所に図形を描く

サンプルコード010304(クリックした場所に円を描く)をforkして、マウスイベントの練習をする。
MovieClipは、Spriteと違ってタイムラインがある、ということだが、何が違うのかよく分からない。MovieClipクラスを使わずに、Spriteクラスを使った場合でも動作した。つまり

class DrawCircle1 extends MovieClip

class DrawCirclw1 extends Sprite

としても変わらず動作する(ように見える)。同じ円を描くにしても、MovieClipの場合は時間軸があるということは、描画過程が見えるとか、そういうことかな。
クリックした場所に円と正方形を描くようにforkしたコードを変えてみた。今まで気づかなかったが、Graphicsクラスには三角形を描くメソッドがないのだな。
以下、変更したコード

// forked from 9re's クリックした場所に円を描く
package {
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.MouseEvent;

    public class MouseClick extends Sprite {
        public function MouseClick() {
            stage.addEventListener(MouseEvent.CLICK, onClick); 
        } 

        private function onClick(e:MouseEvent):void { 
            var nR:int = Math.ceil(Math.random() * 20) + 10; 
            var color:int = Math.floor(Math.random() * 0xffffff);
            var ran:Number = Math.random()
            if (ran >= 0.5) {
              var oneFig:MovieClip = new DrawCircle1(e.stageX, e.stageY, nR, color); 
            }
            else {
            	  var oneFig:MovieClip = new DrawRect1(e.stageX, e.stageY, nR, color);
            }
            addChild(oneFig);
        }
    }
} 

import flash.display.MovieClip; 

class DrawCircle1 extends MovieClip { 
    public function DrawCircle1(nX:int, nY:int, nR:int, color:int) { 
        graphics.lineStyle(2, color);
        graphics.drawCircle(nX, nY, nR); 
    }
}
class DrawRect1 extends MovieClip {
	public function DrawRect1(nX:int, nY:int, nR:int, color:int) {
		graphics.lineStyle(2, color);
		graphics.drawRect(nX, nY, nR, nR);
	}
}

実行結果↓。マウスでクリックした場所に、円か四角がランダムに描画される。