Flash 網頁新聞浮動板的制作(XML應用)_Flash教程
推薦:Flash精致動畫圖標:跟隨鼠標移動的放大鏡目前流行的圖標設計軟件組合是Illustrator/CorelDrawPhotoshop(本文不討論像素圖標),做出來的圖標是靜態的,假如要應用于Flash,必須通過位圖導入,且不
Flash 網頁新聞浮動板的制作(XML應用)
EmilMatthew(EmilMatthew@126.com)
摘要:
我們經常可以看到一些網站上有一些用javascript寫的新聞浮動板的效果。
我嘗試用flash xml做了一個新聞浮動板,基本實現了讀取xml中的內容并在點擊時有超鏈接效果。
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,網頁浮動板
Key Words:Xml,floating-news board
1) 設計階段:
1.1 總體框架:
構想應該是比較簡單的,就是如圖一所示的程序流程圖:

圖1
1.2系統具體設計:

圖2
由于在做這個程序的時候,我對Design Patterns所知甚少,所以,唯一想到的可以降低設計復雜度的方式就是用對象組合,也就是把相應的功能分配給相應的執行對象,再逐級下放。最后由底層類來執行相應的功能。
2)實現階段:
在實現的時候還是會碰到一些困難的,我就把我碰到的主要問題以及解決的方式小結如下:
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事件:
也許是出于安全性的考慮,在我的嘗試過程中,發現flash對讀入的xml文件的存取相當的嚴格。能施展拳腳的空間基本上只有onLoad了。
一旦出了onLoad,那么在onLoad里所動態創建及獲得的一切,不論是否與xml文件中的數據有關,都會變得無效.
所以,一開始的設計中,我是預備把xml文件的讀取與后面的動態效果分離的。后來,經過了失敗的陣痛后,我不得不把所有的主要程序全放在onLoad中,雖然肯定是不合理的,但我實在是沒辦法~~~~
2.4對于讀入xml內容的處理:
讀入的xml數據,一律是被當作String來處理的,所以,當讀入的是數字的時候,應該用parseInt或parseFloat加以轉型。
假如只是直接用,即不用它來做任何運算,還是沒問題的。但我并不推薦這樣做。
2.5對于使用的xml文件格式的說明.
首行的屬性值存放了和這個影片有關的數據,對應介紹如下:
<newsMsg width='204' height='176' newsnum='5' rowinterval='2' fps='80' vy='0.5'>
width:影片的寬度。
height:影片的高度.
newsnum:新聞的數目.
rowinterval:每條新聞所占的行數,我這里的一行是22個像素單位.
fps:setInterval中的每幀的所消耗的毫秒數.
vy:新聞文本框向上移動的速度。
主要的內容的存放格式為:
<news>
<headline>歡迎使用google</headline>
<url>http://www.google.com</url>
</news>
2.6改進:
為了使一個NewsReader可以為多個網頁所用,或者可以在一個網頁中加載不同的新聞,可以采用網頁向Flash中傳遞參數的方式來進行.
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" />
<!—注重:上面的語句即設 定了Flash中變量xmlAddress的值,如有多個變量,用’&’間隔-->
…
<embed src=.../ >
</Object>
另外,在實現復用時,應注重:
a) xmlReader.swf文件應存放于網站的根目錄下,這是由Flash播放器的安全約束所決定的.
b) 在標簽的設定上,要在以下兩處設定相同的引用資源(即swf文件)
<param name="movie" value="../../xmlNewsBoard.swf" />
<embed src="../../xmlNewsBoard.swf"
c) 而對于object中的id屬性及embed中的name屬性,在復用的情況下,不同的復用的名稱不應重復.
d) 對于資源文件的命名及對資源文件的引用,大小寫務必一致,由于服務器端多為linux,對大小寫是嚴格區分的.
參考文獻:
[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
若直接點擊無法下載,請將下載的超鏈接粘接至瀏覽器地址欄后按回車.若不出意外,此時應能下載.
分享:逼真打火機制作 by 月下狂想曲本例實現的是一次性打火機的仿真效果。在該效果地制作中用到了很多實用的技巧與方法,如幀的跳轉技巧,火焰、火花的制作方法;效果中還用到了一些常用的控制語句
- 相關鏈接:
- 教程說明:
Flash教程-Flash 網頁新聞浮動板的制作(XML應用)
。