【转】flash读取html

正常情况下,flash文本框显示的都近似于纯文本,比如你不能在一个动态文本框中显示不同的字号、字体和字色,更不用说在文本框中显示图片。改变这种单调面貌的一个办法就是使用flash的读取html格式文本的功能。

1、文本字段如何显示html文本

首先开启将文本呈现为 HTML功能:

文本框实例名.html = true;

然后使用htmlText属性接收html文本:

文本框实例名.htmlText=”此处是带有html标签或属性的文本”

实例1:

舞台上放一个动态文本框,实例名mytxt,时间轴第一帧写代码:

mytxt.html=true;

mytxt.htmlText=”<font color=’#ff6600′>这里是演示用的文字,它将按照html要求显示。</font>”

测试可看到效果。

//帮助文档中说:htmlText 属性文本字段支持以下 HTML 标记:abfont colorfont facefont sizeipu。此外,支持下列 HTML 属性:leftmarginrightmarginalignindentleading。 要应用这些属性,请使用 TextFormat 类或层叠样式表。有关详细信息,请参阅”学习 Flash 中的 ActionScript 2.0″中的以及”ActionScript 2.0 语言参考”中的”TextFormat 类”或”TextField.StyleSheet 类”。

 

2、通过loadvars对象读取外部html文档:

以下示例,我用TextArea组件代替动态文本框来显示读取到的html文档内容。

实例2:

var content_txt:mx.controls.TextArea;
//content_txt.multiline = true;
content_txt.wordWrap = true;
content_txt.html = true;
content_txt.hScrollPolicy = “on”;
var story:LoadVars = new LoadVars();
story.onData = function(s) {
if (s !== undefined) {
//使用文本组件的话,没有htmlText属性,使用text属性即可。
//使用动态文本框的话,必须使用htmlText属性。
content_txt.text = unescape(s);
} else {
content_txt.text = “载入错误。”;
}
};
story.load(“http://www.china.com.cn/news/txt/2009-06/17/content_17961878.htm“);

//以上例子载入了一个网络上的html页面,在flash内测试,即按下Ctrl+Enter键进行测试,效果如下图:

但是输出swf文件无法载入,上传空间也无法载入,看来和载入txt文本不同,载入html时会受flash的安全模型限制。

如果是html文档和swf文档在同一文件夹下,访问则没有任何问题,看下面实例:

实例3:

 

//————————————–flash脚本:————-

var content_txt:mx.controls.TextArea;
content_txt.wordWrap = true;
content_txt.html = true;
content_txt.hScrollPolicy = “on”;
var story:LoadVars = new LoadVars();
story.onData = function(s) {
if (s !== undefined) {
//使用文本组件的话,没有htmlText属性,使用text属性即可。
//使用动态文本框的话,必须使用htmlText属性。
content_txt.text = unescape(s);
} else {
content_txt.text = “载入错误。”;
}
};
story.load(“t.html”);

//——————–t.html文档保存在和swf在同一文件夹下,内容为:

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html;charset=UTF-8″/>
<title> 律师称邓玉娇未决定是否上诉 法学家就此案答问_中国网</title>
<meta name=”keywords” content=” 邓玉娇 汉大赋 上诉 此案 答问 认定被告人 法学家 故意伤害罪 刑法 防卫行为” /><body><font color=”#ff6600″>巴东县人民法院认为,邓玉娇在遭受邓贵大、黄德智无理纠缠、拉扯推搡、言词侮辱等不法侵害的情况下,实施的反击行 为具有防卫性质,但超过了必要限度,属于防卫过当。被告人邓玉娇故意伤害致人死亡,其行为已构成故意伤害罪。案发后,邓玉娇主动向公安机关投案,如实供述 罪行,构成自首。经法医鉴定,邓玉娇为心境障碍(双相),属部分(限定)刑事责任能力。据此,依法判决对邓玉娇免予刑事处罚。</font>
</body>
</html>

//————————————-swf输出效果:—————————

3、使用外部css样式表的方法:

flash脚本:

//===================使用外部样式表========================================
var myStyle:TextField.StyleSheet = new TextField.StyleSheet();
myStyle.load(“ys.css”);
content_txt.styleSheet = myStyle;
//=============================================================
var content_txt:mx.controls.TextArea;
content_txt.wordWrap = true;
content_txt.html = true;
content_txt.hScrollPolicy = “on”;
var story:LoadVars = new LoadVars();
story.onData = function(s) {
if (s !== undefined) {
//使用文本组件的话,没有htmlText属性,使用text属性即可。
//使用动态文本框的话,必须使用htmlText属性。
content_txt.text = unescape(s);
} else {
content_txt.text = “载入错误。”;
}
};
story.load(“t.html”);

//==================================外部样式表文件ys.css:

body {
font-family: Arial,Helvetica,sans-serif;
font-size: 16px;
font-weight: bold;
display: block;
}
//=============自己还可以继续编辑更多的样式设置

4、将文本呈现为html的好处。

从上面的截图效果可以看出,开启了html功能后,文本显示出来的格式丰富了,可以给文本中的任一处文字随意改变颜色,字体等,还可以在文本内容中显示图片。这是纯文本格式所不能比的。

如果我们想使flash文本框中的内容格式丰富多彩,使用html格式是很好的办法。

我想可以在dw的设计视图下设置好一篇文章的格式,然后从代码视图下得到它的html格式文本,进而在flash中显示html,以使flash文本格式丰富多彩。

发表回复