メイン
| 2006年07月 »
2006年06月のアーカイブ
2006年06月26日
AS3でモグラ叩き
AS3の練習を兼ねて、モグラ叩きを作ってみた。このくらいのものなら、AS2とさほど変わらない感じです。
イベントの登録に一貫性があるので、AS2より混乱しなくなったかも。Eclipseが独自変数などを補完してくれるのが一番うれしいですね。
---(
package {
import flash.display.MovieClip;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.display.Graphics;
import flash.events.Event;
import flash.events.MouseEvent;
public class test extends MovieClip
{
private var score:Number = 0; // スコア
private var score_txt:TextField; // スコア表示用
private var counterMogura:Number = 50; // モンスター生成タイミング
private var mogura_array:Array; // モンスター管理用
public function test()
{
mogura_array = new Array();
score_txt = new TextField(); // スコア表示テキストを作成
score_txt.x = 10; score_txt.y = 10;
score_txt.type = TextFieldType.DYNAMIC;
score_txt.text = "SCORE: 0";
this.addChild(score_txt);
this.addEventListener(Event.ENTER_FRAME, this.onEnterFrame);
}
private function onEnterFrame(event:Event):void
{// 毎フレーム発生するイベント
counterMogura++;
if (counterMogura > 20) { // モンスター出現?
counterMogura = 0;
if (mogura_array.length < 70) {
var mogura_mc:MovieClip = new MovieClip(); // モグラ生成
mogura_mc.graphics.beginFill(Math.random() * 0xFFFF);
mogura_mc.graphics.drawEllipse(0,0,30,30);
mogura_mc.graphics.endFill();
mogura_mc.x = Math.random() * root.width;
mogura_mc.y = Math.random() * root.height;
mogura_array.push(mogura_mc);
this.addChild(mogura_mc);
// イベントの登録
mogura_mc.addEventListener(MouseEvent.CLICK, mogura_onClick);
}
} else {
var i:Number; // モンスターを動かす
for (i = 0; i < mogura_array.length; i++) {
var mc:MovieClip = mogura_array[i];
mc.x += Math.random() * 24 - 12;
mc.y += Math.random() * 24 - 12;
}
}
}
private function mogura_onClick(event:Event):void
{ // モグラをクリックした時のイベント
var mc:MovieClip = MovieClip(event.target);
var index:Number = mogura_array.indexOf(mc);
if (index >= 0) {
score++;
score_txt.text = score.toString();
mogura_array.splice(index, 1);
this.removeChild(mc);
mc = null;
}
}
}
}
---)
AS3でHello World
おきまりのHello Worldを作ってみました。
---(
package {
import flash.display.MovieClip;
import flash.text.TextField;
import flash.text.TextFieldType;
public class test extends MovieClip
{
public function test()
{
var txt:TextField = new TextField();
txt.x = 10; txt.y = 10;
txt.type = TextFieldType.DYNAMIC;
txt.text = "Hello World!";
txt.selectable = false;
this.addChild(txt);
}
}
}
---)
※TextFieldTypeには、"DYNAMIC"(入力できない)と"INPUT"(入力可能)の2つが選べるようです。
ActionScript3.0をチェック
ActionScript3.0 をチェックしてみた。画面に赤い丸を描くだけのプログラム。
---(
package {
import flash.display.MovieClip;
import flash.display.Graphics;
public class test extends MovieClip
{
public function test()
{
this.graphics.beginFill(0xFF0000);
this.graphics.drawCircle(50,50,30);
this.graphics.endFill();
}
}
}
---)