[目次|前回|次回|Reference]

動きをつけよう(onEnterFrameイベントハンドラ)

Time-stamp: "2009-11-05 Thu 08:40 JST hig"

ActionScript2.0の関数定義

課題

先週の国旗の課題を, メソッドfillRect,drawRectを用いて修正しよう.

平行移動, 回転, 拡大縮小, 透明化 --- オブジェクトとプロパティ

上記の課題で, mcはMovieClipという型を持つオブジェクトです. オブジェクトは, mc._x のような書式でアクセスできるプロパティを持っていることがあります. どのようなプロパティがあるかは, ReferenceMovieClipを検索してみましょう. このプロパティは参照できます. そして許される場合は変更できます.

C言語の構造体をイメージするといいでしょう.

MovieClipオブジェクトは複数作ることができ, その間に親子関係を持たせることができます.

課題

動かしてみよう -- イベントハンドラ

Flashでは, 1秒間に, 決められただけframe(フレーム)が進みます. frameが進むというイベントが発生するごとに, オブジェクトのonEnterFrame というメソッドが実行されます. このようなメソッドをイベントハンドラといい, その他にも, マウスが特定の位置に来たときに実行されるようなイベントハンドラもあります. イベントハンドラの中でオブジェクトのプロパティを変更することにより, オブジェクトが「動く」ようにすることができます. 次のmain.asの例で見ましょう(もちろんこれを#includeするmovement.flaファイルが別に必要です)

var mc1:MovieClip = this.createEmptyMovieClip("mc1",this.getNextHighestDepth());
var mc2:MovieClip = this.createEmptyMovieClip("mc2",this.getNextHighestDepth());

var count1:Number = 0;
var count2:Number = 0;


mc1.lineStyle(3, 0x0000ff, 100, true, "none", "round", "miter", 1);
mc1.moveTo(-10,0);
mc1.lineTo(10,0);
mc1.moveTo(0,-10);
mc1.lineTo(0,10);
mc1._x=20;
mc1._y=20;
mc1.onEnterFrame=function(){
	if(count1<100){
		this._rotation+=3;
		count1++;
	}
}



mc2.lineStyle(3, 0xff0000,  50, true, "none", "round", "miter", 1);
mc2.moveTo(-10,0);
mc2.lineTo(10,0);
mc2.moveTo(0,-10);
mc2.lineTo(0,10);
mc2._x=100;
mc2._y=100;
mc2.onEnterFrame=function(){
	if(count2<50){
		this._x+=1;
		this._y+=2;
		count2++;
	}
}

課題

 

エミュレータのスクリーンショットを撮ってWikiに載せよう

Mac では Shift + Command(Windows) + 4. 範囲を指定するとデスクトップに保存される

moodleの共有Wikiに載せる