リプタクのもう覚えられません
Google
Web サイト内
topmemo ▶ ボタンサンプル02

ActionScript

ボタンサンプル02

ボタンのサンプル。

【サンプル】

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

サンプルソースをダウンロード


【ActionScript3.0 サンプルソースコード】

stop();
//-----------------------------------------------------------------変数
//配置位置、スピード、タイマー用変数
var tX0:Number = -100;//テストmc原点x座標
var tY0:Number = 0;//テストmc原点Y座標
var tXEnd:Number = 0;//テストmc目標x座標
var tYEnd:Number = 0;//テストmc目標Y座標
var maskSpeed:Number = 0.4;//テストmcスピード
var timeMask:Timer = new Timer(maskSpan,maskDraw);//マスク用表示タイマー
var timeMOut:Timer = new Timer(maskSpan,maskDraw);//マスク用表示タイマー
var maskSpan:int = 48;//マスク用タイムスパン
var maskDraw:int = 8;//マスク用描画回数
//-----------------------------------------------------------------初期配置
addChild(test_bt);//ボタン
addChild(test_mc);//隠しmc
addChild(mask_mc);//マスクmc
test_mc.x = tX0;
test_mc.y = tY0;
mask_mc.x = test_bt.x = tXEnd;
mask_mc.y = test_bt.y = tYEnd;
test_mc.mask = mask_mc;//マスクを設定
//-----------------------------------------------------------------マウスが乗った場合
test_bt.addEventListener(MouseEvent.MOUSE_OVER,overTest);
function overTest(e:MouseEvent):void {
	if (timeMOut.running == true) {//タイマーが実行中なら
		timeMOut.reset();//タイマーリセット
	}
	if (test_mc.x != tXEnd || test_mc.y != tYEnd) {//どちらかが違えば
		timeMask = new Timer(maskSpan,maskDraw);
		timeMask.addEventListener(TimerEvent.TIMER,sec4);
		timeMask.addEventListener(TimerEvent.TIMER_COMPLETE,sec5);
		timeMask.start();//マスク表示用タイマー開始
	}
}
//-----------------------------------------------------------------表示用タイマー
function sec4(e:TimerEvent):void {
	test_mc.x = test_mc.x + (tXEnd - test_mc.x) * maskSpeed;
	test_mc.y = test_mc.y + (tYEnd - test_mc.y) * maskSpeed;
}
function sec5(e:TimerEvent):void {//タイマーコンプリート
	test_mc.x = tXEnd;
	test_mc.y = tYEnd;
}
//-----------------------------------------------------------------マウスが出た場合
test_bt.addEventListener(MouseEvent.MOUSE_OUT,outTest);
function outTest(e:MouseEvent):void {
	if (timeMask.running == true) {//タイマーが実行中なら
		timeMask.reset();//タイマーリセット
	}
	if (test_mc.x != tX0 || test_mc.y != tY0) {//どちらかが違えば
		timeMOut = new Timer(maskSpan,maskDraw);
		timeMOut.addEventListener(TimerEvent.TIMER,sec6);
		timeMOut.addEventListener(TimerEvent.TIMER_COMPLETE,sec7);
		timeMOut.start();//マスク非表示用タイマー開始
	}
}
//-----------------------------------------------------------------非表示用タイマー
function sec6(e:TimerEvent):void {
	test_mc.x = test_mc.x + (tX0 - test_mc.x) * maskSpeed;
	test_mc.y = test_mc.y + (tY0 - test_mc.y) * maskSpeed;
}
function sec7(e:TimerEvent):void {//タイマーコンプリート
	test_mc.x = tX0;
	test_mc.y = tY0;
}
//-----------------------------------------------------------------マウスをクリック
test_bt.addEventListener(MouseEvent.CLICK,clickTest);
function clickTest(e:MouseEvent):void {
	trace("クリック確認");//出力 クリック確認
}
last update 2009.3.25
参考・出典等
Riptac ボタンサンプル01

▲page top

topmemoblogtestaboutmail
Copylight(C)2008-2009 Riptac. All Rights Reserved.