0
点赞
收藏
分享

微信扫一扫

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,就可以了


举报

相关推荐

0 条评论