JSFL autowrap textfield

时间:2013-09-12 15:27:22

标签: javascript flash jsfl

我正在努力学习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;

1 个答案:

答案 0 :(得分: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);
}

我希望这会帮助你。让我知道它是如何为你工作的。