深度链接(Deep linking)--2

来源:互联网 发布:移动网络玩魔兽世界 编辑:程序博客网 时间:2024/06/05 17:20

接《SWFAddress--深度链接(Deep linking)》这篇文章,分析Document.as

1、导入swfaddress中的两个as文件

从官网下载的文件包中包含了as1.0,as2.0,as3.0的3种编码方式的as文件,根据as的不同版本,我们自行选其一。

  (这里我用的是as3),这两个as文件定义了swfaddress中要用到的所有方法,如setTitle,href,setValue,getValue,back,forward,…

2、为SWFAddress添加侦听事件

在构造函数Document()中,为SWFAddress添加侦听事件,事件类型为:SWFAddressEvent.CHANGE,侦听事件:handleSWFAddressChange

当URL改变后,侦听事件就可以改变当前页面的Title,使用浏览器的前进按钮或后退按钮等动作。

addBtnListeners()是按钮事件。通过点击按钮来改变URL.

注意,想让SWFAddress工作起来,就要设置好这个侦听

看侦听事件:handleSWFAddressChange的代码

在这里使用了getValue()和switch语句,根据所获取的value中的斜杠线"/",判断当前页是否为主页,从而下一步动作。

使用getParameter(String)获取value中设置好的参数值,参数值不同,动作也不同。例子中设置的参数值是"page1""page2"

使用setTitle(String)是改变html页面的title值

3、改变URL

看addBtnListeners()的代码

四个按钮实例名称分别为:顺序是从上到下,从左到右, backb,nextb,page1_btn,page2_btn

上面的两个button是前进和后退,下面的两个button是改变URL和title,并load新的SWF

在点击了下面的两个按钮后,前进和后退按钮才开始动作

handlePageOne()和handlePageTwo()用来处理page1_btn,page2_btn,

所用的函数changePage(p:String)使用了SWFAddress.setValue(p:String)设置"#"号要填加的字符。

例子中是设置了带参数的字符串,我们也可以不带参数,这种情况下就可以去掉handleSWFAddressChange中getParameter(String),而使用getValue()。

设置参数时,一般以"?"开头,"page"是参数名,"="后是参数值,分别为"page1""page2"。

4、前进,后退

handleBack()和handleNext()用来处理backb,nextb

"前进"直接使用SWFAddress.forward();

"后退"直接使用SWFAddress.back(); 但要考虑一个问题,浏览器的历史记录有很多,我只想后退到当前的这个flash主页,不想后退到别的网站,就得对当前value进行判断

      

以上四点是最基本的步骤,还有其它SWFAddress的功能这里没有应用,如google跟踪分析,设置窗口 的status,获取浏览历史记录等。

重要的是理解SWFAddress.as ,SWFAddressEvent.as这两个文件,并根据自己的flash来灵活运用。

原创粉丝点击