具體做法:
1.1 新建一個(gè)Flash文檔,保存為index_flash.fla
1.2 在該文檔里新建一個(gè)MC,名為pagesButtons_clip,在里頭放一個(gè)按鈕,寫(xiě)入代碼:
on (release) { _parent.loadNews(_name);//該函數(shù)用于Flash內(nèi)的頁(yè)面跳轉(zhuǎn)。 }
1.3 再載入一個(gè)動(dòng)態(tài)文本,變量名為_(kāi)name
1.4 在主場(chǎng)景里放入四個(gè)pagesButton_clip,分別命名為page1,page2,page3,page4
1.5 在主場(chǎng)景新建一個(gè)MC,實(shí)例名為pages,在里頭放入實(shí)例名為page1,page2,page3,page4的MC。
1.6 在適當(dāng)?shù)奈恢媒opages建立一個(gè)遮罩mask。
1.7 下面可以寫(xiě)代碼了,這次跳轉(zhuǎn),我會(huì)讓相應(yīng)的page定位至mask那里,從而讓該頁(yè)面顯示,其它則隱藏。 主場(chǎng)景的幀里寫(xiě):
var initx = mask._x;//首先定位一個(gè)初始點(diǎn),這是頁(yè)面定位的常量 var inity = mask._y;//同上 var targetx=initx; var targety=inity;//這兩個(gè)變量也用于定位,使用韓式緩沖公式算法,可以讓MC緩慢地移動(dòng)到(targetx,targety)這一點(diǎn)。 this.onEnterFrame = function() { pages._x = pages._x-0.2*(pages._x-pages.targetx); pages._y = pages._y-0.2*(pages._y-pages.targety); };//這個(gè)則是緩沖公式 function loadNews(href) {//定義按鈕觸發(fā)的函數(shù) pages.targetx = initx-pages[href]._x; pages.targety = inity-pages[href]._y;//先讓target定位至當(dāng)前MC(也就是傳入的參數(shù)href),然后緩沖公式會(huì)讓當(dāng)前傳入的MC顯示出來(lái),其它的則隱藏 fscommand("setAddress", href);//設(shè)定地址欄內(nèi)容,用于刷新頁(yè)面時(shí)的定位,在JS里會(huì)響應(yīng)這一命令。 getURL("statistics.html?"+href, "stat");//打開(kāi)iframe,讓iframe記錄當(dāng)前點(diǎn)到的MC的實(shí)例名href }
2.1 以帶有fscommand跟蹤的Flash發(fā)布一個(gè)HTML文件和一個(gè)SWF文件,接著把發(fā)布設(shè)置中格式選項(xiàng)卡的HTML勾去掉。
2.2 用記事本打開(kāi)index_flash.html文件,找到//place your code here 一句。寫(xiě)入
if(command=="setAddress"){ document.location.hash=args }
2.3 然后定義一個(gè)onLoad執(zhí)行的函數(shù)JS_LoadNews
function JS_LoadNews(){ window.open("statistics.html?"+document.location.hash.slice(1),"stat")//讓名為stat的iframe打開(kāi)一個(gè)帶參數(shù)的地址 }
2.4 根據(jù)上一步的JS,加一個(gè)iframe
<iframe noscroll border="0" src="about:blank" width="1" height="1" name="stat" id="stat"></iframe>
2.5 在body標(biāo)簽里加onload=JS_LoadNews()
3.1 新建一個(gè)HTML文件,名為statistics.html,在這里寫(xiě)入控制Flash的代碼:
<script language="javascript"> function pageLoad(){ window.parent.index_flash.setVariable("link",window.document.location.search.slice(1))//parent指父級(jí)框架,這里可以指向FLASH文件,location.search是獲取地址參數(shù),該值包含“?”,所以用slice(1)去掉。 } </script> <body onload=pageLoad()> </body>
3.2 上面的代碼設(shè)置了Flash里的link值,為了觸發(fā)Flash的函數(shù),在Flash里用addProperty來(lái)觸發(fā)相關(guān)函數(shù): 追加幀代碼:
this.addProperty("link", getLink, setLink); function getLink() { } function setLink(link) { fscommand("setAddress", link); pages.targetx = initx-pages[link]._x; pages.targety = inity-pages[link]._y; }
經(jīng)典論壇討論: http://bbs.blueidea.com/viewthread.php?tid=2670755
Flash全站的技術(shù)應(yīng)用系列: (一)AS+JS的Flash網(wǎng)站無(wú)刷新定位技術(shù) (二)Flash網(wǎng)站的SEO (三)Flash網(wǎng)站的流量統(tǒng)計(jì) (四)讓Flash網(wǎng)站具有IE前進(jìn)后退的功能 (本文) (五)圖片輪換效果
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁(yè) 讓Flash網(wǎng)站具有IE前進(jìn)后退功能 [1] 下一頁(yè)
◎進(jìn)入論壇Flash專(zhuān)欄版塊參加討論
|