質問: 【actionscript】テキストボックスの枠の色は変えられますか? flash8(win-xp)使用者です。 テキストボックスにはわく(ボーダー)を付けられますが、この枠の色は変えられないのでしょうか?背景とかは変えられるのに... お詳しい方、よろしくお願いいたします。
回答: ダイナミックテキストかテキスト入力のテキストフィールドの周囲に表示される枠(線の幅 1 px の四角形)のことでしょうか? この枠の色でしたら、textfield クラスが持っている bordercolor というプロパティで変更できます。 ダイナミックテキストまたはテキスト入力のテキストフィールド” txt_fld ”があるとします。 このボーダーの色を変えるスクリプトは (↓各行頭に全角のスペースが入っています。コピーする際はご注意ください) //ボーダーをありにする txt_fld.border = true; //ボーダーの色を青にする txt_fld.bordercolor = 0x0000ff; となります。 当然ながら、bordercolor の指定はテキストフィールドにボーダーがある時のみ有効です。 ボーダーの有無は border プロパティで設定できます。 true であり、false でなしです。 「プロパティ」パネルで”テキストの周囲にボーダーを表示”ボタンを on にした場合、border プロパティは true に設定されます。 このボタンを on にすると、背景(スクリプトでは background プロパティ)もありに設定されてしまいます。 ボーダーだけを付けたいのでしたら、このボタンを off にしてスクリプトで border プロパティのみ true にするか、ボタンを on にしてスクリプトで background プロパティに false を設定してください。 スクリプトでの指定の方が優先されるので、両方ともスクリプトであり・なしを設定しておくと万全です。 ちなみに、背景の色は backgroundcolor プロパティで変更できます。 スクリプトでは、漫画のフキダシのような独特の形状や、グラデーション・画像をパターンとして塗りつぶしたものなどの凝ったボーダーや背景を作れません。 ボーダー・背景が両方ともなしの時、テキストフィールドの背景は透明になっています。 描画ツールで背景を描いて、この上にボーダー・背景なしのテキストフィールドを重ねると、簡単に好きな背景を付けることができます。 ui コンポーネントを利用している時は、同時に組み込まれる focusmanager が独自のフォーカス処理を行います。 tab キーを押すとフォーカスが移動するのですが、コンポーネントだけでなくテキスト入力になっているテキストフィールドにも、独特の枠(フォーカスリング)が表示されるようになります。 focusmanager が描画するフォーカスリングの色は、デフォルトでは緑( 0x80ff4d )です。 この色を変えるには //フォーカスリングを赤にする _global.style.setstyle( "themecolor" , 0xff0000 ); というスクリプトを設定してください。 ただし、コンポーネントのテーマカラーも同時に変わってしまいます。 例えば、他のフォーカスリングは赤でコンポーネントのテーマカラーは元通り緑でいいのなら、先ほどのスクリプトに コンポーネントのインスタンス名.setstyle( "themecolor" , "halogreen" ); を追加してください。 ************************** textarea コンポーネントは、ボーダーの色やスタイルを細かく変更することができます。 textarea コンポーネントのボーダーには陰影が付いていますから、この設定とは簡単に言うと、陰影の付け方と線および影の色の設定です。 スタイル等を細かくカスタマイズできる点は普通のテキストフィールドよりも優秀ですけれど、それだけに設定は面倒で、テキストフィールドのように簡単にはいきません。 陰影の付け方および色の設定につきましては、ヘルプのコンポーネントガイド「 rectborder クラス」の項目をご参考になさってください。 livedocs にはなぜか図がないようですが、ヘルプですと陰影のパターンの違いなどがサンプル付きで載っています。 ・ flash ドキュメンテーション: rectborder クラスでのスタイルの使用 http://livedocs.adobe.com/flash/8_jp/main/00003948.html