POPSブログ

Bit101で日本語を表示する

93

  Category:  as32012/04/24 pops 

ComboBoxを使用の必要にせまられ調べました。Bit101で日本語を表示する簡単な方法がありました。


Bit101で日本語を表示する


Flashならば問題はありませんが、FlashDevelopではComboBox等のコンポーネントを使用出来ませんから、「Bit101」を使用してみました。どうしても日本語表示をしたく調べて見ましたところ「簡単な方法」が見つかりました。最近の記事です、前に調べたときはありませんでした。


超簡単な方法

【参考、出典】きのみきのまま: MinimalComps日本語化とその他プロパティ

日本語化したBit101を使用する方法

【参考、出典】MinimalComps を使って GUI 部品を表示する

wonderflの記事にも「FontLoaderを使ってMinimalCompsで日本語表示」があった。フォントをEmbedしてもOKのようだ。

【参考、出典】wonderfl: FontLoaderを使ってMinimalCompsで日本語表示


「超簡単な方法」は、たったこれだけの書き換えのみ。感謝!


//Styleを読み込む
import com.bit101.components.Style;

//bit101日本語にする
Style.embedFonts = false;
Style.fontName = "_ゴシック";
Style.fontSize = 12;//13ポイントが読みやすい

bit101で使用しているフォントを使用しないように変更するだけ
の方法のようです。_ゴシックを使用してみました。

Bit101で日本語を表示する


Bit101で日本語を表示する

通常のBit101を読み込み、比較するために「hikipuro」サンのコードに、ComboBoxを追加して表示してみました。
場合によっては、日本語化しないほうが、コードを書く上で効率的な場合もあるかとはおもいますが、、、。


//FlashTest454
package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.text.TextFormat;
	
	import com.bit101.components.*;
	import com.bit101.components.Style;
	
	/**
	 * @author Hikipuro
	 */
	
	[SWF(width = "465", height = "465", frameRate = "30", backgroundColor = "0xFFFFFF")]
	
	public class FlashTest454 extends Sprite
	{
		private var checkBox:CheckBox;
		private var hSlider:HSlider;
		private var labelHSlider:Label;
		private var inputText:InputText;
		private var progressBar:ProgressBar;
		
		/**
		 * コンストラクタ
		 */
		public function FlashTest454():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		/**
		 * 初期化イベント
		 * @param	e
		 */
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			
			//bit101日本語にする
			Style.embedFonts = false;
			Style.fontName = "_ゴシック";
			Style.fontSize = 12;//13ポイントが読みやすい
			
			// パネルの準備
			var panel:Panel = new Panel(this, 15, 20);
			panel.setSize(stage.stageWidth - 30, stage.stageHeight - 40);
			
			// チェックボックスの準備
			checkBox = new CheckBox(panel, 20, 20, "", onCheckBoxClick);
			checkBox.label = "チェックボックス";
			
			// ラベルの準備
			var label:Label = new Label(panel, 20, 40);
			label.text = "これはラベルです";

			// ボタンの準備
			var pushbutton:PushButton = new PushButton(panel, 20, 60, "", onPushButtonClick);
			pushbutton.label = "押しボタン";
			pushbutton.width = 100;

			// 横方向スライダーの準備
			hSlider = new HSlider(panel, 20, 90);
			hSlider.addEventListener(Event.CHANGE, onHSliderChange);
			labelHSlider = new Label(panel, 60, 100);
			labelHSlider.text = "0.0";

			// 縦方向スライダーの準備
			var vSlider:VSlider = new VSlider(panel, 130, 20);

			// テキスト入力ボックスの準備
			inputText = new InputText(panel, 20, 130);
			inputText.width = 120;
			inputText.text = "テキスト入力";     

			// プログレスバーの準備
			progressBar = new ProgressBar(panel, 160, 130);
			progressBar.maximum = 100;

			// ラジオボタンの準備
			var radio1:RadioButton = new RadioButton(panel, 160, 20, "", false, onRadioButtonClick);
			radio1.label = "ラジオボタン 1";

			var radio2:RadioButton = new RadioButton(panel, 160, 40, "", false, onRadioButtonClick);
			radio2.label = "ラジオボタン 2";

			var radio3:RadioButton = new RadioButton(panel, 160, 60, "", false, onRadioButtonClick);
			radio3.label = "ラジオボタン 3";

			// 色選択ボックスの準備
			var colorchooser:ColorChooser = new ColorChooser(panel, 160, 90);
			colorchooser.value = 0xff0000;
			
			// Comboboxの準備
			var array_settingName:Array = ["設定1", "設定2","設定3","設定4","設定5","設定6","設定7","設定8","設定9","設定10"];
			var combobox1:ComboBox = new ComboBox(this, 300, 40, "設定の種類", array_settingName);
			combobox1.numVisibleItems = array_settingName.length;
			//combobox1.selectedIndex = 0;
			combobox1.addEventListener(Event.SELECT, onSelect_combbox1);
			addChild(combobox1);
			// 作者様の情報
			var labelAuther:Label = new Label(panel, 20, 160);
			labelAuther.text = "Keith Peters さんが作られた MinimalComps というライブラリを\n使用して GUI 部品を表示しています。";
			
			// フレーム開始イベントの登録
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
		}
		
		/**
		 * フレーム開始イベント
		 * @param	e
		 */
		private function onEnterFrame(e:Event):void 
		{
			// プログレスバーの更新
			progressBar.value++;
			if (progressBar.value == progressBar.maximum) {
				progressBar.value = 0;
			}
		}
		
		/**
		 * チェックボックスがクリックされた時のイベント
		 * @param	e
		 */
		private function onCheckBoxClick(e:MouseEvent):void
		{
			if (checkBox.selected == false) {
				inputText.text = "チェックが消えました";
			} else {
				inputText.text = "チェックが付きました";
			}
		}
		
		/**
		 * ラジオボタンがクリックされた時のイベント
		 * @param	e
		 */
		private function onRadioButtonClick(e:MouseEvent):void
		{
			var radio:RadioButton = e.currentTarget as RadioButton;
			switch (radio.label) {
				case "ラジオボタン 1":
					inputText.text = "ラジオボタン 1 が選択されました";
					break;
				case "ラジオボタン 2":
					inputText.text = "ラジオボタン 2 が選択されました";
					break;
				case "ラジオボタン 3":
					inputText.text = "ラジオボタン 3 が選択されました";
					break;
			}
		}
		
		/**
		 * ボタンがクリックされた時のイベント
		 * @param	e
		 */
		private function onPushButtonClick(e:MouseEvent):void 
		{
			inputText.text = "ボタンがクリックされました";
		}
		
		/**
		 * 横方向のスライダーが変更された時のイベント
		 * @param	e
		 */
		private function onHSliderChange(e:Event):void
		{
			labelHSlider.text = hSlider.value.toFixed(1);
		}
		
		//combobox1のイベント
		private function onSelect_combbox1(event:Event):void {
			var box1:ComboBox = event.currentTarget as ComboBox;
			//inputText.text = "" + box1.selectedIndex + "番目が選択されました";
			inputText.text = "" + box1.selectedItem + "が選択されました";
		}
	}
	
}

注意、標準でのComboBoxは6段のみ認識するようになっています。


ComboBoxは配列を使用したほうが、効率的
var array_settingName:Array = ["設定1", "設定2",...........];

numVisibleItemsで段数を設定します
combobox1.numVisibleItems = array_settingName.length;

当方の実際使用した、次ぎのページを参照ください。

【参考】当方の記事: 文字を分解してアニメ処理で表示1


以上です。



[ この記事のURL ]


タグ:as3 , ActionScript , flash

 

ブログ記事一覧

年別アーカイブ一覧



[1]