ASP.NET中實現(xiàn)可動態(tài)更新Flash統(tǒng)計圖
怎么在自己的ASP.NET頁面插入可動態(tài)更新Flash統(tǒng)計圖呢?網(wǎng)上的資源倒是不少(Fusioncharts、amCharts……),
但我覺得效果最炫的還是amcharts的統(tǒng)計圖,還可以與用戶交互
可動態(tài)更新Flash統(tǒng)計圖效果圖:
(柱狀圖)
(餅狀圖)
(股票圖)
(怎么樣?效果夠炫吧?趕緊去官網(wǎng)體驗一下吧,會比你想象的用起來還要好~還可以自己設(shè)置很多的效果)
amcharts官網(wǎng)上各種各樣的都可以下載,而且可以免費使用,唯一不足的就是免費版會顯示它公司的鏈接,不過這是可以破解的,
下載amcharts_key.txt放到flash的相同目錄下即可。
我所使用的flash是兩個不同的版本,一個是直接在官網(wǎng)下載的柱狀圖、另一個不知道的哪下的餅狀圖,不過也是amcharts的,但貌似是經(jīng)過破解的,只有一個xml文件(一般來說都應(yīng)該有兩個,一個主要設(shè)置內(nèi)容,一個主要設(shè)置外觀)如下圖:
準(zhǔn)備工作:統(tǒng)計圖的swf文件、相關(guān)的xml數(shù)據(jù)文件、swfobject1.5(現(xiàn)在2.x都有了,不過感覺1.5用著舒服些)
先說說從官網(wǎng)下載下來的使用方法吧。直接以代碼呈現(xiàn):(關(guān)于swfobject請查看官方文檔)
- <script type="text/javascript" src="js/swfobject.js"></script>
- <div id="flashcontent">
首先引用swfobject.js,不然編譯器會罷工的噢~ : )
然后就是一個div,也可以是span,里面有一句"You need to upgrade your Flash Player”,你肯定猜得到在flash未加
載時就會顯示這句話,這是為什么呢?(破有小沈陽的味道)請繼續(xù)往下看,SWFObject(注意大小寫哦)里的***句就引用了想要加載的flash路徑,然后下面兩句關(guān)聯(lián)上xml文件,如果要動態(tài)改變flash的話就必須在xml后加上一個隨機(jī)變量,否則flash只會在你重新運行或者清空緩存之后改變,***一個so.write就是用flash替換掉div中的內(nèi)容。
下面是改變內(nèi)容的代碼:(因為完全不熟悉xml,自己瞎琢磨出的一個方法,僅作參考)
- using System.Xml;
- XmlDocument doc = new XmlDocument();
好了,這樣就大功告成了~
然后再說說我的另外一個flash的用法吧,這個就麻煩多了,中外的網(wǎng)站都給翻遍了(有點夸張,不過我確實是從晚上11點直到早上5點半才把它給解決),開始說了,這個flash只有一個xml如果用前面的方法想要實現(xiàn)動態(tài)的話是不可能的,因為這個flash是從內(nèi)部讀取xml的,在外面怎么改都不能動態(tài)顯示,我***還想通過禁用緩存的方法來解決,但也是不可能的,我甚至想了一個更絕的辦法:直接拿修改后的xml去覆蓋windows臨時文件夾的xml。
但還是行不通,***實在不行了就只能把flash給反編譯了,不過幸好flash的代碼不那么麻煩,沒找多久久找到了那個載入的函數(shù)
- function load(url)
- {
- xml.load(url);
- }
然后我直接在url后加上了隨機(jī)變量
- function load(url)
- {
- xml.load(url+“?"+Math.random());
- }
這樣ASP.NET中實現(xiàn)可動態(tài)更新Flash統(tǒng)計圖就OK了
本文來自Darryn的博客園文章《在ASP.NET中使用可動態(tài)更新的flash統(tǒng)計圖》
【編輯推薦】