本站原创文章,转载请注明: 转载自zrong's Blog,原文 ActionScript3如何控制使用htmlText属性嵌入动态文本框中的图像?,欢迎使用文章源码进行转载。
本站转载文章会标明[转],转载请注明原始作者文章地址。
2010年9月4日:在Flash Player 10中,已经可以使用新的TLF框架原生支持图片的嵌入和精确的控制了,详见以下几篇文章:
Flash Text Engine、Text Layout Framework在Flex、Flash中的实现
从Flash Player7开始,我们就可以通过动态文本框的htmlText属性,使用<img>标签来嵌入图像或者swf影片。在Flex的LiveDoc中,可以找到这样一段描述<img>标签的“id”属性的文字:
id Specifies the identifier for the imported image. This is useful if you want to control the embedded content with ActionScript.
这说明,可以通过制定id属性,让ActionScript控制嵌入的图像。
但是,怎样控制呢?我在Flex的帮助中并没有找到相关的信息,倒是在Flash CS3的“学习 Adobe Flash 中的 ActionScript 2.0”章节中找到了相关的说明:
Flash 为每个
标签创建一个新的影片剪辑并在 TextField 对象中嵌入该影片剪辑。
标签的 id 属性允许您将实例名称分配到创建的影片剪辑。这允许您使用 ActionScript 控制该影片剪辑。
Flash 创建的影片剪辑作为子级影片剪辑添加到包含该图像的文本字段中。
在帮助中使用这样的代码来控制嵌入TextField中的swf文件:
this.createTextField("textField_txt", 10, 0, 0, 300, 200); textField_txt.html = true; textField_txt.htmlText = "Here's an interesting animation: <img id="animation_mc" src="animation.swf" alt="" />"; stop_btn.onRelease = function() { textField_txt.animation_mc.stop(); }; |
但是,这毕竟是ActionScript2的方法,在ActionScript3是行不通的。在ActionScript3中如何做呢?有人知道么?


getImageReference
感谢提醒
也感谢你的这篇文章。
呵呵,说来也巧,我刚写完那篇日志后,去看google reader时就发现你提的问题,于是就…. 哈哈
其实这个问题是来源于我做的文字聊天室,想给它加上表情功能。结果发现嵌入TextArea中的img并不是以“嵌入式”方式排版,而是以“四周型”方式排版的。要想控制img的位置,看来只能改变它的x、y值了。
TextArea没有getImageReference方法,又要继承它,然后调用它的保护属性,麻烦
:em20: :em19: :em22
这个id 可以实现成动态的么?我需要插入不同的内容,而且都是动态加载的,请问尝试过么、
建议你看上面提到的“在Flex中实现聊天表情图片支持-实战篇”一文。TLF的控制更加精确,实现你的需求肯定是没问题的。