Flash 網(wǎng)頁新聞浮動板的制作(XML應(yīng)用)_Flash教程
推薦:Flash精致動畫圖標(biāo):跟隨鼠標(biāo)移動的放大鏡目前流行的圖標(biāo)設(shè)計軟件組合是Illustrator/CorelDrawPhotoshop(本文不討論像素圖標(biāo)),做出來的圖標(biāo)是靜態(tài)的,假如要應(yīng)用于Flash,必須通過位圖導(dǎo)入,且不
Flash 網(wǎng)頁新聞浮動板的制作(XML應(yīng)用)
EmilMatthew([email protected])
摘要:
我們經(jīng)常可以看到一些網(wǎng)站上有一些用javascript寫的新聞浮動板的效果。
我嘗試用flash xml做了一個新聞浮動板,基本實現(xiàn)了讀取xml中的內(nèi)容并在點擊時有超鏈接效果。
Abstract:
Nowadays,we could see lots of floating-news board be implemented on the web, which always be coded under javascript .
I have tried to use flash with xml technology to implement a floating-news board, and achieve the goal which could parse
the data on the xml and have a redirect url effect while user click the news.
要害詞:Xml,網(wǎng)頁浮動板
Key Words:Xml,floating-news board
1) 設(shè)計階段:
1.1 總體框架:
構(gòu)想應(yīng)該是比較簡單的,就是如圖一所示的程序流程圖:

圖1
1.2系統(tǒng)具體設(shè)計:

圖2
由于在做這個程序的時候,我對Design Patterns所知甚少,所以,唯一想到的可以降低設(shè)計復(fù)雜度的方式就是用對象組合,也就是把相應(yīng)的功能分配給相應(yīng)的執(zhí)行對象,再逐級下放。最后由底層類來執(zhí)行相應(yīng)的功能。
2)實現(xiàn)階段:
在實現(xiàn)的時候還是會碰到一些困難的,我就把我碰到的主要問題以及解決的方式小結(jié)如下:
2.1防止亂碼:
transXml.ignoreWhite=true;
System.useCodepage = true;
2.2htmlText:
聽說Flash是支持CSS的,但支持度有限,嘗試了一下一個讓超鏈接變色的效果,失敗了。
有熱心的朋友也提供了方案,不過我試過了,也失敗了.
至于顏色就直接用<font color='#0000FF'>來做就是了,如下:
private function htmlStrMake(info:String,href:String,textHolder:TextField):Void
{
var tmpStr:String="<font color='#0000FF'><a href='";
tmpStr =href;
tmpStr ="' target='_blank'>";
tmpStr =info "</a></font>";
textHolder.htmlText=tmpStr;
}
2.3xml的onLoad事件:
也許是出于安全性的考慮,在我的嘗試過程中,發(fā)現(xiàn)flash對讀入的xml文件的存取相當(dāng)?shù)膰?yán)格。能施展拳腳的空間基本上只有onLoad了。
一旦出了onLoad,那么在onLoad里所動態(tài)創(chuàng)建及獲得的一切,不論是否與xml文件中的數(shù)據(jù)有關(guān),都會變得無效.
所以,一開始的設(shè)計中,我是預(yù)備把xml文件的讀取與后面的動態(tài)效果分離的。后來,經(jīng)過了失敗的陣痛后,我不得不把所有的主要程序全放在onLoad中,雖然肯定是不合理的,但我實在是沒辦法~~~~
2.4對于讀入xml內(nèi)容的處理:
讀入的xml數(shù)據(jù),一律是被當(dāng)作String來處理的,所以,當(dāng)讀入的是數(shù)字的時候,應(yīng)該用parseInt或parseFloat加以轉(zhuǎn)型。
假如只是直接用,即不用它來做任何運算,還是沒問題的。但我并不推薦這樣做。
2.5對于使用的xml文件格式的說明.
首行的屬性值存放了和這個影片有關(guān)的數(shù)據(jù),對應(yīng)介紹如下:
<newsMsg width='204' height='176' newsnum='5' rowinterval='2' fps='80' vy='0.5'>
width:影片的寬度。
height:影片的高度.
newsnum:新聞的數(shù)目.
rowinterval:每條新聞所占的行數(shù),我這里的一行是22個像素單位.
fps:setInterval中的每幀的所消耗的毫秒數(shù).
vy:新聞文本框向上移動的速度。
主要的內(nèi)容的存放格式為:
<news>
<headline>歡迎使用google</headline>
<url>http://www.google.com</url>
</news>
2.6改進(jìn):
為了使一個NewsReader可以為多個網(wǎng)頁所用,或者可以在一個網(wǎng)頁中加載不同的新聞,可以采用網(wǎng)頁向Flash中傳遞參數(shù)的方式來進(jìn)行.
Flash中定義變量:
var address:String=xmlAddress;
Html文件在加載Flash的語句片段中:
<Object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase=….> <param name="allowScriptAccess" value="sameDomain" />
…
<param name="FlashVars" value="xmlAddress=xmlFiles/mainIndexNews.xml" />
<!—注重:上面的語句即設(shè) 定了Flash中變量xmlAddress的值,如有多個變量,用’&’間隔-->
…
<embed src=.../ >
</Object>
另外,在實現(xiàn)復(fù)用時,應(yīng)注重:
a) xmlReader.swf文件應(yīng)存放于網(wǎng)站的根目錄下,這是由Flash播放器的安全約束所決定的.
b) 在標(biāo)簽的設(shè)定上,要在以下兩處設(shè)定相同的引用資源(即swf文件)
<param name="movie" value="../../xmlNewsBoard.swf" />
<embed src="../../xmlNewsBoard.swf"
c) 而對于object中的id屬性及embed中的name屬性,在復(fù)用的情況下,不同的復(fù)用的名稱不應(yīng)重復(fù).
d) 對于資源文件的命名及對資源文件的引用,大小寫務(wù)必一致,由于服務(wù)器端多為linux,對大小寫是嚴(yán)格區(qū)分的.
參考文獻(xiàn):
[1]Danger,《Flash ActionScript2.0字典(chm)》版,made by Danger,2004.
完成日:05/7/11
修改日:06/1/19
效果展示:
http://www.emilmatthew.zk.cn/EmilPapers/06_04ffBoard/sample.html
本文最佳瀏覽定位:
http://www.emilmatthew.zk.cn/EmilPapers/06_04ffBoard/index.htm
程序源碼下載:
http://emilmatthew.51.net/EmilPapers/06_04ffBoard/code.rar
若直接點擊無法下載,請將下載的超鏈接粘接至瀏覽器地址欄后按回車.若不出意外,此時應(yīng)能下載.
分享:逼真打火機制作 by 月下狂想曲本例實現(xiàn)的是一次性打火機的仿真效果。在該效果地制作中用到了很多實用的技巧與方法,如幀的跳轉(zhuǎn)技巧,火焰、火花的制作方法;效果中還用到了一些常用的控制語句
- 相關(guān)鏈接:
- 教程說明:
Flash教程-Flash 網(wǎng)頁新聞浮動板的制作(XML應(yīng)用)
。