3、 新建一个FLASH文档,在舞台放置两个多行动态文本框,实例名分别为titles和contents,分别放新闻标题及内容。 本来,笔者打算直接把index.html直接读进titles文本框里,可惜链接放进去就会跳转页面,如果要避免的话,必须通过字符串分析把链接改成asfunction协议,此法麻烦,而且容易受内容影响而出错。所以,还是再建一个XML文档提供给FLASH去读取好了。 在index.html所在目录下,建一XML文件news.xml
<?xml version="1.0" encoding="GB2312"?> <news> <a href="page1.html" title="news1"/> <a href="page2.html" title="news2"/> <a href="page3.html" title="news3"/> </news> 在Flash里新建一图层,添加帧代码: System.useCodepage = true; titles.html = true; var titlesLv = new XML(); titlesLv.load("news.xml"); titlesLv.onLoad = function(success) { if (success) { var titles_arr = new Array(); var hrefs_arr = new Array(); titles.htmlText = ""; for (var i in titlesLv.childNodes[0].childNodes) { titles_arr[i] = titlesLv.childNodes[0].childNodes[i].attributes.title; hrefs_arr[i] = titlesLv.childNodes[0].childNodes[i].attributes.href; } for (var i in titles_arr) { titles.htmlText += "<br><a href=\"asfunction:loadNews,"+hrefs_arr[i]+"\">"+titles_arr[i]+"</a>"; } } };
此段代码是把解析XML文件的,不属本教程的重点,故不再赘述。 这其中的loadNews函数是调用新闻的,在下面添加:
var contentsLv = new LoadVars(); function loadNews(href) { contentsLv.load(href); fscommand("setAddress",href)//让新闻加载的时候,修改地址栏#后的内容。这将在JS里定义。 } contents.html = true; contentsLv.onData = function(src) { fscommand("setTitle",getTitle(src))//setTitle修改页面的标题,也在JS里定义。getTitle从html字符串里获得标题。该函数在AS里定义 contents.htmlText = getContents(src);//getContents从html字符串里获取正文内容,将在AS里定义。
下面定义这两个字符串分析函数: 分页html的格式:
<title>新闻标题</title><script language="javascript" src="toNews.js"></script><body>正文内容</body>
function getTitle(str){ var beginIndex=str.indexOf("<title>")+7//标题符从<title>标签开始 var endIndex=str.indexOf("</title>")//结束于</title>标签 return str.slice(beginIndex,endIndex)//标记后用slice函数截得 } function getContents(str){ var beginIndex=str.indexOf("</title>")+8//正文可以从</title>开始,也可以选择<body>标签 return str.slice(beginIndex)//标记后用slice截取。 } };
保存FLA文件到index.html所在目录,文件名为index_flash.fla。然后点“文件”-“发布设置”,在HTML选项卡里,模板下拉选择“带FSCOMMAND跟踪的FLASH”,然后点“发布”按钮。接着在“格式”选项卡里把HTML勾去掉。
出处:蓝色理想
责任编辑:moby
上一页 Flash 网站的 SEO [3] 下一页 Flash 网站的 SEO [5]
◎进入论坛Flash专栏版块参加讨论
|