下面介紹這里用到的兩個技術(shù)點(diǎn):
1. JS修改,讀取地址欄內(nèi)容
運(yùn)行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行]
從中可見,當(dāng)你點(diǎn)了某個鏈接之后,document.location.hash修改的時候,地址欄#后面的內(nèi)容會修改,并且頁面的文字“在第幾頁”也發(fā)生了變化,但是頁面卻沒有發(fā)生刷新。 人為刷新之后,頁面顯示的并非你最初打開所顯示的內(nèi)容,而是顯示你設(shè)置過的內(nèi)容。因此,只要把hash值傳給FLASH,F(xiàn)LASH就可以根據(jù)此變量進(jìn)行定位了。另一方面,F(xiàn)LASH也可以通過FSCOMMAND調(diào)用JS設(shè)置hash的值,為人為刷新的準(zhǔn)確定位打下基礎(chǔ)。
2. FLASH與JS的通訊
首先,F(xiàn)LASH可以通過FSCOMMAND調(diào)用JS。或者getURL("javascript:func()"),但是后者有些缺點(diǎn)。具體是哪些,有興趣的可以向我了解。
測試辦法:
首先,新建一個FLASH文檔,在第一幀里寫代碼
var flashvar=1 fscommand("msgbox",flashvar)
然后,把文件保存一下,文件名為test.fla
接下來,“文件”-“發(fā)布設(shè)置”,在HTML選項(xiàng)卡里,看到模板的下拉菜單,選擇“帶FSCOMMAND跟蹤的FLASH”接著點(diǎn)“發(fā)布按鈕”
此時,在FLA文件所在目錄下,你可以看到有一個SWF文件和一個HTML文件。用記事本打開HTML文件,找到//place your code here(代碼放在此處),寫入代碼:
if(command=="msgbox"){ alert(args) }
測試HTML文件,你會看到一個顯示1的提示框出來了。 把flashvar變量改成2,就顯示2。 可見,通過此辦法,F(xiàn)LASH中的flashvar的值就傳給了JS。如果把a(bǔ)lert(args)改成document.location.hash=args的話,地址欄就給改了,但是頁面沒跳轉(zhuǎn)。
接著,就是JS調(diào)用FLASH了。測試辦法如下: 在該FLASH文檔中創(chuàng)建一個動態(tài)文本框,變量為jsvar,接著在alert(args)后面加上test.setVariable("jsvar",document.location) 可見,動態(tài)文本顯示出地址欄的內(nèi)容了,這是JS傳給FLASH的結(jié)果。 至于這個FLASH插件的其它方法,可以參考這里。
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁 AS+JS的Flash網(wǎng)站無刷新定位技術(shù) [1] 下一頁 AS+JS的Flash網(wǎng)站無刷新定位技術(shù) [3]
◎進(jìn)入論壇Flash專欄版塊參加討論
|