リプタクのもう覚えられません
Google
Web サイト内
topmemo ▶ スコア表示サンプル

ActionScript

スコア表示サンプル

数値を何回かに分けて表示させるサンプル。

サンプルは、1〜10フレームにそれぞれフレームに対応させた数字が表示されるようにしたムービークリップを、必要な桁数分だけ配置。

スクリプトで、表示させたい数字のフレームで停止させる処理。タイマーで少しずつ増加減させた数値を算出させる処理。を組み合わせている。

JavaScriptを有効にし、最新のFlashPlayerをインストールお願いしますGet Adobe Flash player


アクションフレーム




var tokutenNow:int=0;//表示させたい得点
var tokutenEnd:int;//最終的に表示させたい得点
funcKazuHyouji(tokutenNow);//初期得点描画実行

//-----------------------------------------------------------引数の数を画面に描画させる処理
function funcKazuHyouji(kazu:int){
	
	var kazuMoji:String = String(kazu);//数字を文字列化
	
	//1の位から数字文字を配列化
	var kaMoAr:Array = [
						kazuMoji.charAt(kazuMoji.length-1),//1桁目(1の位)
						kazuMoji.charAt(kazuMoji.length-2),//2桁目(10の位)
						kazuMoji.charAt(kazuMoji.length-3),//3桁目(100の位)
						kazuMoji.charAt(kazuMoji.length-4),//4桁目(1000の位)
						kazuMoji.charAt(kazuMoji.length-5),//5桁目(10000の位)
						kazuMoji.charAt(kazuMoji.length-6),//6桁目(100000の位)
						];
	
	//数字表示用インスタンスの配列化
	var kaMcAr:Array = [
						kazu1_parts,//1桁目(1の位)
						kazu2_parts,//2桁目(10の位)
						kazu3_parts,//3桁目(100の位)
						kazu4_parts,//4桁目(1000の位)
						kazu5_parts,//5桁目(10000の位)
						kazu6_parts,//6桁目(100000の位)
						]; 
	
	//桁数オーバーの場合「-」表示の上処理中断
	if(kazuMoji.length > kaMcAr.length){
		for(var a:int; a != kaMcAr.length ;a++){
			kaMcAr[a].gotoAndStop(12);
		}
		return;
	}
	
	//カウンタ表示フレームの移動処理
	for(var i:int; i !=kaMcAr.length ;i++){
		if(kaMoAr[i] == ""){               //空欄の場合
			kaMcAr[i].gotoAndStop(11);
		}else if(kaMoAr[i] == "-"){        //−の場合
			kaMcAr[i].gotoAndStop(12);
		}else if(kaMoAr[i] == "0"){        //0の場合
			kaMcAr[i].gotoAndStop(10);
		}else{                             //1〜9の場合
			kaMcAr[i].gotoAndStop(int(kaMoAr[i]));
		}
	}
}

//-----------------------------------------------------------少しずつ加算させる処理
function funcTokutimer(kazu:int){
	
	var a:int=(kazu-tokutenNow)/10;//差の1/10
	tokutenNow = a+tokutenNow;
	funcKazuHyouji(tokutenNow);
	
	//タイマー
	var test_timer:Timer= new Timer(0.02*1000,9);//9回描画
	test_timer.addEventListener(TimerEvent.TIMER,funcTestTimer);
	test_timer.addEventListener(TimerEvent.TIMER_COMPLETE,funcTestTimerComp);
	test_timer.start();
	function funcTestTimer(e:TimerEvent):void{
		tokutenNow = a+tokutenNow;
		funcKazuHyouji(tokutenNow);
	}
	function funcTestTimerComp(e:TimerEvent):void{
		tokutenNow = kazu;
		funcKazuHyouji(tokutenNow);
		test_timer.removeEventListener(TimerEvent.TIMER,funcTestTimer);
		test_timer.removeEventListener(TimerEvent.TIMER_COMPLETE,funcTestTimerComp);
	}
}

//-----------------------------------------------------------動作確認用ボタン処理
bt_950350.addEventListener(MouseEvent.CLICK,test1);
bt_1569.addEventListener(MouseEvent.CLICK,test1);
bt_0.addEventListener(MouseEvent.CLICK,test1);
bt_78615.addEventListener(MouseEvent.CLICK,test1);
bt_2000.addEventListener(MouseEvent.CLICK,test1);
bt_m99872.addEventListener(MouseEvent.CLICK,test1);
bt_m28.addEventListener(MouseEvent.CLICK,test1);
bt_m7400.addEventListener(MouseEvent.CLICK,test1);

function test1 (e:MouseEvent):void{
	switch(e.target.name){
		case "bt_950350":
			tokutenEnd = 950350;
			break;
		case "bt_1569":
			tokutenEnd = 1569;
			break;
		case "bt_0":
			tokutenEnd = 0;
			break;
		case "bt_78615":
			tokutenEnd = 78615;
			break;
		case "bt_2000":
			tokutenEnd = 2000;
			break;
		case "bt_m99872":
			tokutenEnd = -99872;
			break;
		case "bt_m28":
			tokutenEnd = -28;
			break;
		case "bt_m7400":
			tokutenEnd = -7400;
			break;
	}
	funcTokutimer(tokutenEnd);
}



last update 2011.1.23
参考・出典等
「特に無し」

▲page top

topmemogalleryblogtestaboutlinksmail
Copylight(C)2008-2010 Riptac. All Rights Reserved.