y[Wgbv

AS3.0 Class

基本のボタンをつくって汎用化する

基本のクラスを作って汎用化するの派生で基本となるボタンもつくる。

ボタンを作る度にクリック動作やロールオーバーの動作を書いてたんじゃ、めんどくてしょーがない。
アクションを統一出来るところはクラス化しましょってことです。

「基本のクラスを作って汎用化する」で作ったAbstractSpriteを使う。

ディレクトリ構造は以下とする。

folder-[更新済み]


AbstractSprite.asは「基本のクラスを作って汎用化する」で作ったものを格納。
※tweensyをダウンロードしてドキュメントクラスと同ディレクトリへ入れておく。

abstractフォルダ ->buttonsフォルダへAbstractButton.asを作成し、以下の様に記述。

package abstracts.buttons{
 
	import abstracts.objects.AbstractSprite;
	import flash.events.MouseEvent;
 
	public class AbstractButton extends AbstractSprite {
 
		public function AbstractButton() {
			super();
			addEventListener(MouseEvent.CLICK,_click);
			addEventListener(MouseEvent.ROLL_OUT,_out);
			addEventListener(MouseEvent.ROLL_OVER,_over);
			buttonMode=true;
		}
		private function _click(e:MouseEvent):void {
			click();
		}
		private function _out(e:MouseEvent):void {
			out();
		}
		private function _over(e:MouseEvent):void {
			over();
		}
 
		protected function click():void {}
		protected function over():void {}
		protected function out():void {}
	}
}



このAbstractButtonクラスを継承すれば、click()、over()、out()をオーバーライドするだけでボタンの機能を簡単に持たせられるというしくみ。

では、早速AbstractButtonを継承するクラスを作ろう。
ドキュメントクラスの同ディレクトリにButton.asを作成し、以下を記述。

package {
	import abstracts.buttons.AbstractButton;
	public class Button extends AbstractButton {
		public function Button(){
			super();
			}
 
		protected override function click():void{
			trace("clickです。");
			}
 
		protected override function over():void{
			trace("overです。");
			}
 
		protected override function out():void{
			trace("outです。");
			}
		}
	}




そしてドキュメントクラスはMain.asとして、下記のように記述。

package {
 
	import abstracts.objects.AbstractSprite;
 
	public class Main extends AbstractSprite {
 
		public function Main () {
			super();
			}
	}
}



AbstractButtonクラスを継承すれば、ボタンをいくつも作る場合に都度MouseEventをロードする必要がなくなり、時間短縮が図れるというわけ。
しかもボタンのアクションも統一出来る。  べ、便利じゃないか。。。

Flaファイル

no comment