Flash 如何简单地将精灵附加到文本区域?
如何将一个简单的25x25图像精灵添加到flex项目的文本区域中?使用actionscript?(不是mxml) (它必须是一个spark文本区域组件,主要是因为这是一个flex mobile项目,这就是为移动优化的全部内容) 编辑:Flash 如何简单地将精灵附加到文本区域?,flash,apache-flex,actionscript-3,textarea,sprite,Flash,Apache Flex,Actionscript 3,Textarea,Sprite,如何将一个简单的25x25图像精灵添加到flex项目的文本区域中?使用actionscript?(不是mxml) (它必须是一个spark文本区域组件,主要是因为这是一个flex mobile项目,这就是为移动优化的全部内容) 编辑: 我想我应该这么说,我知道html文本是解决这个问题的方法。但我真正的困惑在于首先它是一个精灵,所以我没有链接到的url。这是一个实际的sprite变量(它将是一个通过网络发送的文件,以字节为单位,并保存在sprite对象中。)然后,im丢失的第二部分是将它附加到内
我想我应该这么说,我知道html文本是解决这个问题的方法。但我真正的困惑在于首先它是一个精灵,所以我没有链接到的url。这是一个实际的sprite变量(它将是一个通过网络发送的文件,以字节为单位,并保存在sprite对象中。)然后,im丢失的第二部分是将它附加到内联文本中,因此它不会替换文本区域中已经存在的任何文本,并且可以在文本区域中滚动 另外,请记住,我试图将其附加到SPARK文本区域组件。我知道我可以创建一个文本字段实例,就这样,但是我找不到任何关于将其附加到文本区域的信息 再次编辑: 由于我试图添加的精灵有些混乱,所以图像就是这样传输的 它一开始只是一个标准的摄像机图像,然后
var fs:FileStream = new FileStream();
fs.open(new File(imageURL), FileMode.READ);
var bytes:ByteArray = new ByteArray();
fs.readBytes(bytes);
fs.close();
if (bytes == null)
{
trace("Image bytes is null!");
}
else
{
var message:Object = new Object();
message.type = "pic";
message.bytes = bytes;
netGroup.post(message);
trace("Picture sent!");
}
然后我就这样接受了
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.allowCodeImport = false;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onPicLoaded,false,0,true);
loader.loadBytes(message.bytes, loaderContext);
// add a new sprite to hold image
imageSprite = new Sprite();
imageSprite.addChild(loader);
最后我得到了imageSprite中的图像。。。这就引出了我的主要问题,将这个图像附加到一个文本元素中。最终的结果就像是在android或iphone上发送的图片信息。最简单的方法是使用htmlText。 不知道这是否是最合适的方式,但它确实有效。:)
导入flash.text.TextField;
var TF:TextField=new TextField();
此.TF.width=200;
此.TF.height=200;
this.TF.htmlText=“文本字段中的图像:”;
this.addChild(this.TF);
如果您确定上传的文件始终是图像,请尝试将精灵投射到图像中
还有,你看到spark组件文档了吗
“出于性能原因,它没有
支持滚动、选择、编辑、,
可单击的超链接或加载的图像
如果你需要的话
功能,请参阅
RichEditableText类。“
RichText
RichEditableText
我不做flex,但我想这就是你需要的??所以基本上,在组件中添加textflow是需要的
<s:RichEditableText id="richTxt" textAlign="justify" width="100%">
<s:textFlow>
<s:TextFlow>
<s:p>
<s:img source="@Embed(source='../assets/butterfly.gif')" height="100" width="100"/>
</s:p>
</s:TextFlow>
</s:textFlow>
</s:RichEditableText>
发件人:我以前做过,这是一种痛苦。用户将键入并单击图像图标(如图释),然后将其“插入”到文本中。我所做的就是打破当前聚焦的
TextField
,附加BitmapImage
,然后在附加的BitmapImage
末尾启动一个新的TextField
步骤:
- 创建一个数组,用于存储
和文本字段
块位图图像
- 每次听到退格键时,请检查是否位于
文本字段的开头。如果您位于
的开头,请在区块数组中找到TextField
。如果上一个区块是TextField
,则找到该位图图像
,将其与现在为空的位图图像
一起清除,然后将用户光标放在文本字段
之前的位图图像
区块的末尾文本字段
- 修订和审查。如果你是人类,就会有虫子
最终,您将体验到无缝的
TextField
与“emoticon”集成。这很麻烦,但如果你做对了,效果肯定会很好。可能是重复的问题,我想我应该这么说,我知道html文本是解决这个问题的方法。但我真正的困惑在于首先它是一个精灵,所以我没有链接到的url。这是一个实际的sprite变量(它将是一个通过网络发送的文件,以字节为单位,并保存在sprite对象中。)然后,im丢失的第二部分是将它附加到内联文本中,因此它不会替换文本区域中已经存在的任何文本,并且可以在文本区域中滚动。此外,我需要将它附加到文本区域组件中。我知道我可以创建一个文本字段实例,就是这样,我需要将这个htmltext附加到文本区域。我添加了另一个编辑,让您更好地了解我是如何获取图像的。我更改了我的答案,因为我似乎偏离了您之前的问题。您不能在Flex Mobile项目中使用富文本组件,他们只有针对触摸输入优化的textArea组件。lol Adobe真的让人头疼。我想你可能需要为你的工作添加一个带有图像支架和文本框的自定义组件。
<s:RichEditableText id="richTxt" textAlign="justify" width="100%">
<s:textFlow>
<s:TextFlow>
<s:p>
<s:img source="@Embed(source='../assets/butterfly.gif')" height="100" width="100"/>
</s:p>
</s:TextFlow>
</s:textFlow>
</s:RichEditableText>