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 像素的文本框,并使用下面的代码填充文本。我遇到的主要问题之一是静态文本框不允许您调整线型属性,因此您首先将其创建为动态的并将其设置为多行,然后将其设置为静态文本框,并且出于某种原因那行得通。

    // 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 回答