年の功より亀の甲

カメがプログラミングとか技術系について書くブログです。

ActionScript3.0開発オンライン会 第2回 ソースコード報告 vol.1


こちらの記事ではActionScript3.0開発オンライン会の第1回のときに作成したコードの掲載と解説をしていきます。また、途中のコードは意図を書いていくので自分の途中日記だったりもします。

今回は報告記事で掲載したとおり、プログラミングとして主体だったのがボタン周りだったのでクラス部分を紹介いたします。

クラスはCustomButtonクラスです。

package Library{
 import flash.events.MouseEvent;
 import flash.display.MovieClip;
 import flash.display.Stage;
 public class CustomButton  {
    private var mes:String="";
	private var upflag;
	private var downflag;
	private var overflag;
	private var dataclip:MovieClip;
	private var scenemes:String
	public function CustomButton(movieclip:MovieClip):void{
		dataclip = movieclip;
		dataclip.buttonMode = true;
		dataclip.addEventListener(MouseEvent.ROLL_OVER,RollOverButton);
		dataclip.addEventListener(MouseEvent.ROLL_OUT,RollOutButton);
		dataclip.addEventListener(MouseEvent.CLICK,ClickButton);
	}
	
	public function SetPosition(setx:int,sety:int):void{
		dataclip.x = setx;
		dataclip.y = sety;
	}
	
	public function Addparts(Display:Stage){
		Display.addChild(dataclip);
	}
	
	public function RollOverButton(event:MouseEvent):void{
		dataclip.y -= 20;
	}
	
	public function RollOutButton(event:MouseEvent):void{
		dataclip.y += 20;
	}
	
	public function ClickButton(event:MouseEvent):String{
		return "main";
	}
	
 }
}

今回特徴的なのは,addEventListenerです。
dataclipというカスタムボタンとして表示をするムービークリップ(画像やら文字)です。
ボタン本体にマウスがロールオーバされたり、クリックがされたときにボタンを光らせたり動かすための処理を登録するのがaddEventListenerです。
引数としてはイベントの種類と、メソッド名が含まれています。

dataclip.addEventListener(MouseEvent.ROLL_OVER,RollOverButton);
dataclip.addEventListener(MouseEvent.ROLL_OUT,RollOutButton);
dataclip.addEventListener(MouseEvent.CLICK,ClickButton);

それぞれがマウスに対してのイベントでロールオーバ、ロールアウト、クリックを登録しています。

public function RollOverButton(event:MouseEvent):void{
	dataclip.y -= 20;
}
	
public function RollOutButton(event:MouseEvent):void{
	dataclip.y += 20;
}
	
public function ClickButton(event:MouseEvent):String{
	return "main";
}

ロールオーバ→ボタンが上に上がる 
ロールアウト→ボタンが下に下がる
クリック→文字列を返す

となっています。