トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     RadioButton コンポーネントの文字を自動改行させたい
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
knagai
Åê¹ÆNo.43681
投稿日時: 2009-10-12 16:20
職人
居住地: 白馬村
投稿: 796
使用環境:
Re: RadioButton コンポーネントの文字を自動改行させたい
ラジオボタンのラベルを複数行にして、テキストフィールドに境界線をつけたときの動作は、確かに変で、
マウスでテキストフィールドをなぞると、テキストフィールドの文字量にフィットしようとしているかのように、境界線が微妙に変化するように見えます。

このあたりを検索して調べると下記のブログがありました。
Multiline Buttons
これはFlexコンポーネントでのラジオボタンの複数行の問題を解決する方法のようです。

で、自分なりに解決策を考えてみました。
下記コード内の33という数値は、テキストフィールドの境界線がこの値なら変わらないように見える、というわたしが決め打ちした値です。
ラジオボタンの幅がある程度の値の範囲内なら、これでうまくいくようには思えます。

import fl.controls.RadioButton;
import fl.controls.RadioButtonGroup;

var l1:String="PCで設定されたPower Save Extended Mode (PSEM:パワー セーブ拡張モード))モード";
var l2:String="PCで設定されたPower Save Extended Mode (PSEM;パワー セーブ拡張モード))モード拡張";
var l3:String="PCで設定されたPower Save Extended Mode (PSEM;パワー セーブ拡張モード))モード";
var l4:String="PCで設定されたPower Save Extended Mode (PSEM;パワー セーブ拡張モード)";

var labelArray:Array=[l1,l2,l3,l4];

var rbg:RadioButtonGroup=new RadioButtonGroup("selection");

for (var i:uint=0; i< labelArray.length; i++) {
	var rb:RadioButton = new RadioButton();

	rb.textField..autoSize=TextFieldAutoSize.LEFT;
	rb.textField.multiline=true;
	rb.textField.wordWrap=true;
	rb.textField.border=true;
	rb.group=rbg;
	rb.label=labelArray[i];
	
	// 設定したいrbの幅
	rb.width=200;
	rb.textField.width=rb.width-33;

	// y位置はrb内の文字量の応じて変える
	var rbHeight:int =  rb.textField.height;
	var space:int = 20;
	
	rb.y=i*rbHeight+space;
	addChild(rb);

	if (i==0) {
		trace("tfの幅 : " + rb.textField.width);
		trace("tfの高さ: " + rb.textField.height);
		trace("rbの幅 : " + rb.width);
		trace("--------------------")
	}
}

// 確認用ボタン
btn.addEventListener(MouseEvent.CLICK, onClick);

function onClick(evt:MouseEvent) {
	var rb:RadioButton=RadioButton(getChildAt(1));
	trace("tfの幅 : " + rb.textField.width);
	trace("tfの高さ: " + rb.textField.height);
	trace("rbの幅 : " + rb.width);
}


もう1つの解決策は、ラジオボタンのラベルを""にして、ラベルがあるはずの場所に新たにテキストフィールドを作成する方法です。
ラジオボタンのテキストフィールドではなく、純然たるテキストフィールドでは、境界線がふらふら変わることはないので、この方法は上記の方法よりも汎用的です。

さらにもう1つの解決策は、境界線を表示しない方法です。


----------------
永井勝則:
himco.jp :

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   RadioButton コンポーネントの文字を自動改行させたい flashlite 2009-10-2 3:34
     Re: RadioButton コンポーネントの文字を自動改行させたい knagai 2009-10-2 20:09
       Re: RadioButton コンポーネントの文字を自動改行させたい flashlite 2009-10-8 2:23
       Re: RadioButton コンポーネントの文字を自動改行させたい flashlite 2009-10-11 7:05
       » Re: RadioButton コンポーネントの文字を自動改行させたい knagai 2009-10-12 16:20
           Re: RadioButton コンポーネントの文字を自動改行させたい flashlite 2009-10-14 23:49
           Re: RadioButton コンポーネントの文字を自動改行させたい flashlite 2009-11-8 4:35
             Re: RadioButton コンポーネントの文字を自動改行させたい knagai 2009-11-9 14:46
               Re: RadioButton コンポーネントの文字を自動改行させたい flashlite 2009-11-10 3:55

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops