来讲讲:让Flash网站具有IE行进前进的功能
自从Macromedia在2005年8月发布MacromediaStudio8以来,我们一直在不停地探索关于它的新特性和新功能,因为这次软件升级给我们带来了太多的惊喜。媒介:
写完流量统计的教程今后,本觉得会很轻松地就能够完成该篇文章。厥后才发明,本来仍是碰到了坚苦。由于要经由过程iframe把持主HTML的变量,一入手下手,思索到翻开父窗口用的是_parent,而Flash里的父级也是_parent,因而天经地义地觉得iframe会见主html也是经由过程_parent,了局,弄了好久,仍是提醒_parent不决义。
为此,我百度了下,看怎样经由过程iframe会见主html。晕,本来这个是没有下划线的,因而改了下,发明有新的成绩,就是提醒“没有权限”的毛病。在之前玩反编译的游戏中碰到了这个成绩,是跨域会见招致的。奇异了,我的文件都在当地啊,怎样不可呢?熬煎了半小时,决意仍是用IIS来测试吧。嗯,IIS乐成了。岂非file协定也没有权限?仍是辨认不了域名?这个我就没研讨下往了。
效果预览(应wolf2999的请求,此次我就不放超女的器材上往了,并且我网站如今加这功效另有点贫苦,由于布局有点庞大:
http://hbro.cincn.com/hbro/cours...ex_flash.html#page1
点右边一排的按钮,你会发明在动画效果跳转的过程当中,地点栏产生了改动,可是分明的是Flash没有革新,同时前进按钮已可用。你多点几回今后,实验按前进按钮,Flash也一样不革新,可是它会依此经由过程动画跳转到你之前点过的page。
如许,就是经由过程IE的按钮把持Flash的程序了。可是,本色上,是有个iframe在革新的,以是,假如网速慢,而且点得很快,就将招致某些页面给跳过。
完成道理:
找了良多方面的材料,原本想向IE的汗青纪录里工资增加asfunction协定的地点,可是发明仿佛不成能,在Digi的提点下,我晓得了能够经由过程革新iframe来到达把持的目标。其历程为:
[*]在Flash里点击一个所谓的链接,实行一个举措。该形态的一些参数用getURL到iframe里的一个流动页面。好比说,我点了page1,那末getURL的地点将是statistics.html?page1
[*]点击几回今后,iframe实在已革新了几回,因而才会启用前进的功效,这个时分,实在iframe已翻开过了几个页面,假设你依此点了page1,page2,page3,page4这四个按钮,那末,iframe就扫瞄了statistics.html?page1,statistics.html?page2,statistics.html?page3,statistics.html?page4这四个页面了。终极定位在statistics.html?page4
[*]此时点IE的前进按钮,iframe将前往statistics.html?page3。可是纯真如许其实不会让Flash遭到把持。以是,我们必要在statistics.html翻开的时分,启用一个把持Flash的函数,就完成IE前进的功效了。行进的事理也一样。
详细做法:
1.1新建一个Flash文档,保留为index_flash.fla
1.2在该文档里新建一个MC,名为pagesButtons_clip,在外头放一个按钮,写进代码:
on(release){
_parent.loadNews(_name);//该函数用于Flash内的页面跳转。
}
1.3再载进一个静态文本,变量名为_name
1.4在主场景里放进四个pagesButton_clip,分离定名为page1,page2,page3,page4
1.5在主场景新建一个MC,实例名为pages,在外头放进实例名为page1,page2,page3,page4的MC。
1.6在得当的地位给pages创建一个遮罩mask。
1.7上面能够写代码了,此次跳转,我会让响应的page定位至mask那边,从而让该页面显现,别的则埋没。
主场景的帧里写:
varinitx=mask._x;//起首定位一个初始点,这是页面定位的常量
varinity=mask._y;//同上
vartargetx=initx;
vartargety=inity;//这两个变量也用于定位,利用韩式缓冲公式算法,可让MC迟缓地挪动到(targetx,targety)这一点。
this.onEnterFrame=function(){
pages._x=pages._x-0.2*(pages._x-pages.targetx);
pages._y=pages._y-0.2*(pages._y-pages.targety);
};//这个则是缓冲公式
functionloadNews(href){//界说按钮触发的函数
pages.targetx=initx-pages._x;
pages.targety=inity-pages._y;//先让target定位至以后MC(也就是传进的参数href),然后缓冲公式会让以后传进的MC显现出来,别的的则埋没
fscommand("setAddress",href);//设定地点栏内容,用于革新页面时的定位,在JS里会呼应这一命令。
getURL("statistics.html?"+href,"stat");//翻开iframe,让iframe纪录以后点到的MC的实例名href
}
2.1以带有fscommand跟踪的Flash公布一个HTML文件和一个SWF文件,接着把公布设置中格局选项卡的HTML勾往失落。
2.2用记事本翻开index_flash.html文件,找到//placeyourcodehere一句。写进
if(command=="setAddress"){
document.location.hash=args
}
2.3然后界说一个onLoad实行的函数JS_LoadNews
functionJS_LoadNews(){
window.open("statistics.html?"+document.location.hash.slice(1),"stat")//让名为stat的iframe翻开一个带参数的地点
}
2.4依据上一步的JS,加一个iframe
<iframenoscrollborder="0"src="about:blank"width="1"height="1"name="stat"id="stat"></iframe>
2.5在body标签里加onload=JS_LoadNews()
3.1新建一个HTML文件,名为statistics.html,在这里写进把持Flash的代码:
<scriptlanguage="javascript">
functionpageLoad(){
window.parent.index_flash.setVariable("link",window.document.location.search.slice(1))//parent指父级框架,这里能够指向FLASH文件,location.search是猎取地点参数,该值包括“?”,以是用slice(1)往失落。
}
</script>
<bodyonload=pageLoad()>
</body>
3.2下面的代码设置了Flash里的link值,为了触发Flash的函数,在Flash里用addProperty来触发相干函数:
追加帧代码:
<P>
this.addProperty("link",getLink,setLink);
functiongetLink(){
}
functionsetLink(link){
fscommand("setAddress",link);
pages.targetx=initx-pages._x;
pages.targety=inity-pages._y;
}
网页设计者使用Flash创作出既漂亮又可改变尺寸的导航界面以及其他奇特的效果。Flash的前身是FutureWave公司的FutureSplash,是世界上第一个商用的二维矢量动画软件。 在Web上只好把动画做得很小。即使最简单的动画也需要较长的下载时间。Flash的流技术和矢量图形对这种情况做了改变。 Flash流行的主要原因是它使用了矢量图形(与位图相反)。因为这种图形格式比位图小得多,而且在缩放时对图形质量影响不大,所以很适合对带宽要求很高的Web。 Flash动画制作,是指利用Flash软件对动画进行设计,以产生千变万化的效果。随着互联网的兴起。 中坚的程序员趋向于嘲笑脚本语言,但是对于那些没有计算机科学学位的人来说,脚本语言可能使他们头疼。 flash 有这么多的优势,那么它的优缺点和设计方面的关系是什么? flash制作的动画文件比较小,可以在网络上快速传播! alpha通道,图像的一部分可以变成透明,透明度可以从完全不透明到完全不可见。Alpha通道支持没有副作用。
页:
[1]