3

as3 の textfield プレースホルダーについて簡単な質問があります。

最新のブラウザーまたはモバイル アプリはすべて、テキスト入力フィールドのプレース ホルダーをサポートしています。クリックすると、フォーカスがテキストの先頭に移動し、入力を開始するまでプレースホルダーが残ります。

これがas3でアーカイブ可能かどうか疑問に思っていますか?

乾杯法案

4

3 に答える 3

3

わかりましたが、その TextField を手動で処理する必要があります。一般的な手順は次のとおりです。プレースホルダー テキストを保持するフィールドを持つ TextField の下位クラスを用意します。

例:

public class PlaceholderTF extends TextField
{
    private var placeholderText:String;
    private var currentText:String;

    public function PlaceholderTF(prompt:String="Input text here") {
        super(); // making a correct TextField out of ourselves
        placeholderText = prompt;
        currentText = "";
        AWUTA = false;
        text = "";
    }

    public override function set text(value:String):void {
        if (currentText != value) {
            currentText = value;

            // calling built-in setter to correctly update text
            if (currentText == null || currentText == "") {
                super.text = placeholderText;
            } else {
                super.text = currentText;
            }
        }
    }
}

この解決策はかなり大雑把ですが、うまくいくかもしれません。

于 2012-11-05T04:51:40.900 に答える
3
var placeholder_text:String = "Search";

myTextField.addEventListener(FocusEvent.FOCUS_IN,  focusIn);
myTextField.addEventListener(FocusEvent.FOCUS_OUT, focusOut);

// fire when click to edit
function focusIn(event:Event):void
{
    if(myTextField.text == placeholder_text)
    {
        myTextField.text = ""; 
    }
 }

// fire when you clicked out
function focusOut(event:Event):void
{

    if(myTextField.text == "")
    {
        myTextField.text = placeholder_text; 
    }
}
于 2013-02-19T13:47:09.303 に答える