如何使用外部swf中的符号作为TextArea中的图像?

时间:2014-02-09 15:34:58

标签: flex flash movieclip textflow

我希望有人能够在这里提供帮助,所以首先让我们来看看我的问题究竟是什么......

我也喜欢插入来自外部SWF动画片段到我的textarea的,但我认为它并不像我想......因为文本区,TextFlow的成分是不幸的是在这方面几乎没有用我一样方便..

我已经阅读了Textarea和TextFlow的API,我在Google和一些论坛上搜索了很多,但我没有找到解决问题的方法。

我发现了类似的主题,如: Using symbol from library in htmlText <img> tag in ActionScript 3 http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000322.html

我尝试了几种方法来引用符号,但无济于事......

这是我的代码:

[Bindable]
/**
 * The text which will be displayed 
 **/
public var pblMessages:String = "";
  

<s:TextArea id="pblArea" left="10" right="242" top="241" bottom="55" editable="false" textFlow="{TextConverter.importToFlow(pblMessages,TextConverter.TEXT_FIELD_HTML_FORMAT)}" valueCommit="pblAreaCommitHandler(event)"> </s:TextArea>

添加新行的方法:

private function submitText(keyPress:Boolean=false) :void {
            if (pblInput.text=="") {
                pblInput.setFocus();
                return;
            }
            var format:ElementFormat = new ElementFormat();
            var fontDescription:FontDescription = new FontDescription("Arial");
            format.fontSize = 11;
            format.fontDescription = fontDescription;

            var s:String = pblInput.text;
            var re: RegExp = new RegExp("\r|\n","gi");
            s = s.replace(re,"");
            var inlineGraphicElement:InlineGraphicElement = new InlineGraphicElement();
            inlineGraphicElement.source = Smileys.smi_kiss;

            var p:ParagraphElement = new ParagraphElement();
            p.addChild(inlineGraphicElement);
                            //pblArea.textFlow.addChild(p);
            pblMessages += "<font color='#000000'>" + s + "</font><img src='assets/testmovie.swf#smi_kiss' width='20' height='20'/><br/>";
            pblInput.text="";
    }

如果笑脸显示在swf的第一帧上,那么它当然也会在TextArea中显示(没有符号)..但我不想制作100个不同的swf文件..我很确定可以使用符号显示表情符号。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

尝试在不使用TextConverter.importToFlow的情况下创建完整的TextFlow。将inlineGraphicElement添加到p之后,应该向p添加SpanElement,然后将文本添加到SpanElement.text,然后将textFlow分配给pblArea.textFlow。