初级视频编辑室|草蜢非编论坛|初级视编室|草蜢视频编辑|会声会影|威力导演|电子相册

 找回密码
 加入初编室
搜索
查看: 1119|回复: 3
打印 上一主题 下一主题

[Flash 设计及应用] AS+JS的Flash网站无刷新定位技术(二)

[复制链接]

296

主题

1132

帖子

2万

积分

超级版主

Rank: 8Rank: 8

论坛版主精华帖勋章

跳转到指定楼层
楼主
发表于 2014-11-28 21:28:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
onekey onekey
下面介绍这里用到的两个技术点:
1. JS修改,读取地址栏内容
运行代码框
<html><head><script language="javascript">function setPos(pos){  td1.innerText="您现在在第"+pos+"页"  document.location.hash=pos}</script></head><body><a style="cursor:hand">page1</a><br><a style="cursor:hand">page2</a><br><a style="cursor:hand">page3</a><br><table><tr><td id="td1"></td><tr></table></body></html>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
从中可见,当你点了某个链接之后,document.location.hash修改的时候,地址栏#后面的内容会修改,并且页面的文字“在第几页”也发生了变化,但是页面却没有发生刷新。
人为刷新之后,页面显示的并非你最初打开所显示的内容,而是显示你设置过的内容。因此,只要把hash值传给FLASH,FLASH就可以根据此变量进行定位了。另一方面,FLASH也可以通过FSCOMMAND调用JS设置hash的值,为人为刷新的准确定位打下基础。
2. FLASH与JS的通讯
首先,FLASH可以通过FSCOMMAND调用JS。或者getURL("javascript:func()"),但是后者有些缺点。具体是哪些,有兴趣的可以向我了解。
测试办法
首先,新建一个FLASH文档,在第一帧里写代码
var flashvar=1
fscommand("msgbox",flashvar)
然后,把文件保存一下,文件名为test.fla
接下来,“文件”-“发布设置”,在HTML选项卡里,看到模板的下拉菜单,选择“带FSCOMMAND跟踪的FLASH”接着点“发布按钮”
此时,在FLA文件所在目录下,你可以看到有一个SWF文件和一个HTML文件。用记事本打开HTML文件,找到//place your code here(代码放在此处),写入代码:
if(command=="msgbox"){
  alert(args)
}
测试HTML文件,你会看到一个显示1的提示框出来了。
把flashvar变量改成2,就显示2。
可见,通过此办法,FLASH中的flashvar的值就传给了JS。如果把alert(args)改成document.location.hash=args的话,地址栏就给改了,但是页面没跳转。
接着,就是JS调用FLASH了。测试办法如下:
在该FLASH文档中创建一个动态文本框,变量为jsvar,接着在alert(args)后面加上test.setVariable("jsvar",document.location)
可见,动态文本显示出地址栏的内容了,这是JS传给FLASH的结果。
至于这个FLASH插件的其它方法,可以参考这里
楼主热帖
河边已是一首歌
回复

使用道具 举报

206

主题

4527

帖子

7万

积分

初编室元帅

Rank: 14Rank: 14Rank: 14Rank: 14

活跃会员帅哥会员百帖纪念荣誉勋章论坛万元户

沙发
发表于 2014-11-29 06:51:08 | 只看该作者
支持一下!!
回复

使用道具 举报

1

主题

1083

帖子

3994

积分

初编室少校

Rank: 7Rank: 7Rank: 7

板凳
发表于 2014-11-29 07:07:03 | 只看该作者
谢谢老师分享

131

主题

5844

帖子

12万

积分

初编室元帅

Rank: 14Rank: 14Rank: 14Rank: 14

帅哥会员活跃会员论坛万元户百帖纪念荣誉勋章

地板
发表于 2015-1-22 08:58:31 | 只看该作者
逛一逛,顶一顶。
您需要登录后才可以回帖 登录 | 加入初编室

本版积分规则

手机版|小黑屋|初级视频编辑室

GMT+8, 2024-12-26 02:22 , Processed in 0.114332 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表