0

Flash CS5 で AS3 を使用して動的フォームを作成しようとしています。フォームは、コンテナー スプライトと、キャプション (静的で選択不可) 用の 1 つと入力フィールド自体用の TLFTextField オブジェクトのペアで構成されます。

最終的なムービーでこのタイプのより強力な書式設定機能を使用するため、TLFTextField オブジェクトを使用しています。また、テキスト入力コンポーネントは使用していません。

フォームが作成され、期待どおりに表示されますが、フィールド間のタブ移動は期待したものではありません。最初のフィールドにテキストを入力すると、タブ キーを 3 回押して 2 番目のフィールドに移動し、さらに 3 回押して 3 番目のフィールドに移動する、というように続きます。

tabChildren を true と false に設定してみました。また、TLFTextField オブジェクトのタブを有効/無効にしたり、tabIndex シーケンスを操作したりするさまざまな組み合わせを試しましたが、すべて成功しませんでした。

この問題を解決するためのすべての助けがありがたく受け取られます。

問題の例として、新しい AS3 fla を作成し、次のコードを最初のフレームに追加します。

import fl.text.TLFTextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFieldType;
import flash.display.Sprite;

stop();

var nIndex:Number = 0;
var yy:Number = 0;
var form:Sprite = new Sprite();
    form.tabChildren = true;

addTextField("First Name");
addTextField("Last Name");
addTextField("Age");

stage.addChild(form);

function addTextField(sCaption:String)
{
    addCaption(sCaption);
    var c:TLFTextField = new TLFTextField();
    c.autoSize = TextFieldAutoSize.NONE;
    c.y = yy;
    c.height = 20;
    c.width = 200;
    c.border = true;
    c.selectable = true;
    c.type = TextFieldType.INPUT;
    c.tabEnabled = true;
    // c.tabIndex = nIndex++;
    yy += 20;
    form.addChild(c);
}

function addCaption(sCaption:String)
{
    var c:TLFTextField = new TLFTextField();
    c.text = sCaption;
    c.autoSize = TextFieldAutoSize.LEFT;
    c.type = TextFieldType.DYNAMIC;
    c.tabEnabled = false;
    c.selectable = false;
    c.y = yy;
    yy += 20;
    form.addChild(c);
}

前もって感謝します

アンドリュー

4

0 に答える 0