0

JSFL テキスト フィールドに苦労しています。静的な幅 220px のテキスト フィールドをステージに配置したいと考えています。そのため、テキストに挿入された文字列がそれよりも長い場合、次の行に自動的に折り返されます。

助言がありますか?

doc = fl.getDocumentDom();
doc.addNewText({left:0, top:0, right:220, bottom:200});
doc.setElementProperty("textType", "static");
doc.setElementProperty("width", 220); // fails miserably -- text field is huge
doc.setTextString(value);

// Setting the width after the text is entered scrunches the text -- doesn't wrap
// doc.selection[0].width = 220;
4

1 に答える 1

0

そこで、あなたの JSFL の問題を調べてみたところ、JSFL で Flash テキスト ボックスを二度と使用したくないことがわかりました...笑。ステージ上に幅 220 ピクセルのテキスト ボックスを作成し、以下のコードを使用してテキストを入力することができました。私が遭遇した主な問題の 1 つは、静的テキスト ボックスでは線種プロパティを調整できないため、最初に動的として作成し、それを複数行に設定し、次に静的テキスト ボックスに設定し、何らかの理由でそれを設定することでした。それは働いた。

    // Add Text To Stage - Andrew Doll
    // 09-13-13

    var dom = fl.getDocumentDOM();
    if (dom == null)
    {
        alert('Please open a file.');
    }
    else
    {
        // String of text to test with.
        var value = 'This is a test string to make sure what I am doing is working     correctly.';

    // I have no idea why but for some reason Flash will add 2px to the width of the box created so I just used 218 instead of 220.

    // Add a text box to the stage.
    dom.addNewText({left:0, top:0, right:218, bottom:200});

    // Set the size of the text bounding box.
    dom.setTextRectangle({left:0, top:0, right:218, bottom:200});

    // Static text boxes don't allow you to use lineType so use dynamic then set to static afterwards.
    dom.setElementProperty('textType', 'dynamic');

    // Allows multiline text.
    dom.setElementProperty('lineType ', 'multiline');

    // Limits the text box from expanding in size.
    dom.setElementProperty('autoExpand ', false);

    // Set the text box to static.
    dom.setElementProperty('textType', 'static');

    // Set the string of text into the text box.
    dom.setTextString(value);
}

これがお役に立てば幸いです。それがあなたにとってどのように機能するか教えてください。

于 2013-09-13T22:11:28.920 に答える