我希望有人能够在这里提供帮助,所以首先让我们看看我的问题到底是什么......
我本来想将来自外部 swf 的影片剪辑插入到我的 textarea 中,但我认为这并不像我想象的那么容易......因为不幸的是,Textarea,TextFlow 组件在这方面对我来说几乎无法使用..
我已经阅读了 Textarea 和 TextFlow 的 API,并且在谷歌和一些论坛上搜索了很多,但我没有找到解决我的问题的方法。
我发现了与此类似的主题,例如: 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 文件。我很确定笑脸可以用符号来表示。
预先感谢您的帮助。