TextField的htmlText属性中img标签的有趣现象

Flash的文字栏位(TextField)除了用来显示与输入一般文字之外
也有支持简单的HTML标签
像是<font>, <b>, <i>, <u>, <a>, <p>, <br>, <li>, <span>, <img>
其中比较特别的是<img>,除了可以用来表现外部图片以外
还可以通过src指定Linkage Identifier的方式
呈现Library内的MovieClip

以下便是用AS3在TextField内,再创建另一个TextField


package {
import flash.display.MovieClip;
import flash.text.TextField;

[SWF(width="300", height="200", backgroundColor="#FFFFFF")]
public class main extends MovieClip {
public function main() {
var outerTxt:TextField = new TextField();
outerTxt.border = true;
outerTxt.x = 100;
outerTxt.y = 50;
this.addChild(outerTxt);

outerTxt.htmlText = "Outer TextField<img id='txt' src='flash.text.TextField' width='80' height='50' />";
var innerTxt:TextField = outerTxt.getImageReference('txt') as TextField;
innerTxt.border = true;
innerTxt.text = "Inner TextField";
}
}
}

可是TextField.htmlText却有一个问题
假如<img>标签前后没有其它文字,img会建立失败
如以下AS3程序:


package {
import flash.display.MovieClip;
import flash.text.TextField;
import flash.text.TextFormat;

[SWF(width="300", height="200", backgroundColor="#FFFFFF")]
public class main extends MovieClip {
public function main() {
var txt:TextField = new TextField();
txt.border = true;
txt.x = 100;
txt.y = 50;
this.addChild(txt);

txt.htmlText = "<img id='img' src='flash.display.Sprite' />";
trace(txt.getImageReference('img')); // null

txt.htmlText = " " "<img id='img' src='flash.display.Sprite' />";
trace(txt.getImageReference('img')); // [object Sprite]
}
}
}

假如<img>标签前后没有其它文字,img会建立失败
这样说不对的,如果希望没有其它文字,则需要设置该textfield的wordwarp和multiline为true,就可以了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值