用FLASH里的按钮控制网页中层的显示隐藏

[ 2008-09-02 10:46:27 | 作者: Admin ]
字体大小: | |
第一种方法:(经过测试成功)
在<head>标签加入:

<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
obj.visibility=v; }
}
//-->
</script>

FLASH控制隐藏层:
getURL("javascript:MM_showHideLayers('Layer1','','hide')");

FLAHS控制显示层:
getURL("javascript:MM_showHideLayers('Layer1','','show')");

如果层是放在FLASH上,记得在FLASH页面属性中加上透明:
<param name="wmode" value="transparent">
<embed ... wmode="transparent"></embed>

源文件: 点此下载

第二种方法:(没有测试)

如何在Flash控制网页中层的隐藏与显示
解决思路
我们知道,在FLash里是无法直接实现对层的控制的,主要还是靠调用外部的脚本。
具体步骤:

1.先在 Flash 中写按钮的AS。
显示层的按钮:
on(release){
getURL("javascript:showHideLayer(layer1,’show’)")
}
隐藏层的按钮:
on(release){
getURL("javascript:showHideLayer(layer1,’hide’)")
}

2.在插入 Flash 的网页中写 Javascript 代码。

<script>
function showHideLayer(obj,action){
obj.style.display={hide:"none",show:"block"}[action]
}
</script>

3.完整代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>层的隐藏与显示测试</title>
<script>
function showHideLayer(obj,action){
obj.style.display={hide:"none",show:"block"}[action]
}
</script>
</head>
<body>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="150" height="100" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="showHideLayer.swf" />
<param name="menu" value="false" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffcc33" />
<embed src="showHideLayer.swf" menu="false" quality="high" bgcolor="#ffcc33" width="150" height="100" name="demo" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
<div id="layer1" style="position:absolute;left:350;top:200;width:100px;height:100px;background:#eeeeee;border:1px solid #333333">Layer1</div>
</body>
</html>

提 示:也可以在 Flash 中的两个按钮上分别写 ActionScript:
显示层的按钮:

on(release){
getURL("javascript:void(layer1.style.display=’block’)")
}

隐藏层的按钮:

on(release){
getURL("javascript:void(layer1.style.display=’none’)")
}

特别提示
代码运行后,单击Flash中隐藏层的按钮,网页中的层layer1将隐藏,单击Flash中显示层的按钮,层layer1将显示。

特别说明

本例使用的ActionScript里的getURL函数来调用外部脚本。
getURL() 函数将来自特定 URL 的文档加载到窗口中,或将变量传递到位于所定义 URL 的另一个应用程序。若要测试此动作,请确保要加载的文件位于指定的位置。若要使用绝对 URL(例如,http://www.myserver.com),则需要网络连接。
用法
getURL(url [, window [, "variables"]])
参数
url 可从该处获取文档的 URL。当url参数是"javascript:脚本语句"格式字符串时,将执行指定脚本语句。
window 可选参数,指定文档应加载到其中的窗口或 HTML 框架。您可输入特定窗口的名称,或从下面的保留目标名称中选择:
_self 指定当前窗口中的当前框架。
_blank 指定一个新窗口。
_parent 指定当前框架的父级。
_top 指定当前窗口中的顶级框架。
variables 用于发送变量的 GET 或 POST 方法。如果没有变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,该方法用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,该方法用于发送大量的变量。
永久地址 永久地址: http://www.2studio.com/blog/feed.asp?q=comment&id=122
UTF-8 Encoding 引用地址: http://www.2studio.com/blog/trackback.asp?id=122
此文还没有评论.
您无法为这篇日志发表评论.