ボタン

YUI_INFO_BTN

ボタンを生成する際に利用する情報クラス

特筆項目内容
BACK_BLOCK Normal状態のスプライト設定ブロック
HIGHLIGHT_BLOCK Highlight状態のスプライト設定ブロック
PRESS_BLOCK Press状態のスプライト設定ブロック
SetColorBlock カラーブロック設定により
Normal・Highlight・Press・Disabledカラーを設定します
SetColorNormal Normal状態のTintカラーを設定します
SetColorHiglight Highlight状態のTintカラーを設定します
SetColorPress Press状態のTintカラーを設定します
SetColorDisabled Disabled状態のTintカラーを設定します
SetCommandParam Press時に通知するデータをobject型で設定します

生成方法と特徴

下記の例では、画面の中心に仮想解像度上のサイズ200*200にてボタンを描画します。
ボタンの中心が画面の中心になります。
また、9スライス設定で背景のスプライトを
Normal・Highlight・Pressについて設定しています。

ボタンは入力時の処理を実装するため、殆どの場合、意図的な固有IDが必要になります。 下記の例ではID_BTNが固有IDとなります。


	// リソース準備.
	YUIAsync rAsyncNormal		= YUI.GetSpriteAsync( YUI.E_SPRITE.BTN_NORMAL );
	YUIAsync rAsyncHighlight	= YUI.GetSpriteAsync( YUI.E_SPRITE.BTN_HIGHLIGHT );
	YUIAsync rAsyncPress		= YUI.GetSpriteAsync( YUI.E_SPRITE.BTN_PRESS );

	// ボタン生成.
	int ID_BTN = YUIMgr.GetNewID();
	YUI_INFO_BTN rInfo = new YUI_INFO_BTN( ID_BTN );
	rInfo.SetRect( 0, 0, 400, 400 );
	rInfo.SetAnchorPivot( YUI.E_ANCHOR.CENTER, YUI.E_PIVOT.CENTER );
	rInfo.BACK_BLOCK.SetSprite( rAsyncNormal, YUI.E_FILL_TYPE.SLICED );
	rInfo.HIGHLIGHT_BLOCK.SetSprite( rAsyncHighlight, YUI.E_FILL_TYPE.SLICED );
	rInfo.PRESS_BLOCK.SetSprite( rAsyncPress, YUI.E_FILL_TYPE.SLICED );
	rInfo.SetCommandParam( 10 );
	YUIMgr.Create<YUI_BTN>( rInfo );
	

ボタンに対する何かしらのユーザー入力をキャッチする場合には IDに対するデリゲートの登録が以下のように必要になります。
デリゲートの登録は親ウィンドウがあれば親ウィンドウに登録し
なければYUIMgrに登録するのが一般的です。


	YUIMgr.RegCommand( ID_BTN,	FUNC_BTN );
	

登録するコマンドはYUIMgr.COMMAND型で、以下のように 戻り型boolでint,int,objectの引数を設定してください。


	protected bool FUNC_BTN( int nUniqueID, int nComType, object rParam ) {
		return true;
	}
	
nUniqueID通知元のWidgetの固有IDが格納されています
nComTypeYUIDefs.E_COMMANDに登録されているコマンドが格納されています
rParamSetCommandParamで格納したobjectが格納されています

ユーザーの入力について処理を行う場合は、以下の例を参考にしてください。
戻り値はtrueの場合、そこでユーザー入力に対する処理を終了します。
falseの場合、親Widgetがあれば親に対して同一のコマンドを通知します。


	protected bool FUNC_BTN( int nUniqueID, int nComType, object rParam ) {
		switch ( nComType ) {
			case (int)YUI.E_COMMAND.CLICK:
				// ここにクリックされた時の処理.
				return true;
			case (int)YUI.E_COMMAND.POINTER_ENTER:
				// マウスオーバーした時の処理.
				return true;
			case (int)YUI.E_COMMAND.POINTER_EXIT:
				// マウスアウトした時の処理.
				return true;
		}
		return false;
	}

生成結果

※仮想解像度1280*800の場合