flash中geturl打开一个新窗口

2012-01-17 11:08  评论 0 条

flash自动适应不同尺寸的浏览器窗的问题解决了,下面就开始解决一个窗口里面探出另外一个窗体类似于exel一样建立一个表格在建立另外一个表格,几个建立的表格之间可以相符切换编辑。

 

flash中geturl打开一个新窗口

<script>

funcion(xx){

close

};

</script>

on(release){

    getURL("javascript:yourfunction();");

}

            我们经常可以在一些网站上遇到这样的情况,一进入首页立刻会弹出一个窗口,或者按一个链接或按钮弹出,通常在这个窗口里会显示一些注意事项、版权信息、警告、欢迎光顾之类的话或者作者想要特别提示的信息。其实制作这样的页面效果非常的容易,只要往该页面的HTML里加入几段Javascript代码即可实现。那么在Flash构建的网页中呢?能不能也实现这样的效果呢?回答是肯定的,因为我们同样可以利用HTML网页即包括Flash动画,还包括弹出窗口的Javascript脚本。当然我们还可以在Flash文件里面的Action中加入这些Javascript脚本,同样可以达到这样的效果。

            这一部分的内容基本就来介绍使用JavaScript弹出窗口,我们将在Flash动画所在的HTML网页或者Flash按钮上加入的相应JavaScript脚本来弹出窗口。可不要小瞧了这部分内容,它对于使用Flash构建的网站可是相当的有用。因为我们知道,在Flash中制作各种各样的窗口虽然可以,可是毕竟是麻烦一点,为什么不采用简单点的呢?好,我们就来学习弹出窗口的内容,您会发现它并不是很难的。

            我们一步一步来了解JavaScript:window.open()中弹出窗口的各种应用。

            1、最基本的弹出窗口代码

              <SCRIPT LANGUAGE="javascript">

              <!--

              window.open (’page.html’)

              -->

              </SCRIPT>

            因为这是一段javascript代码,所以它们需要放在<SCRIPT

            LANGUAGE="javascript">标签和</script>之间。如果要在Flash文件的Action中弹出的话,则需要在关键帧或者按钮的Action中加入getURL(”JavaScript:window.open()”),如同前面介绍的全屏技书中使用到的JavaScript一样,我们后面就不在对这个进行说明了,您可以依据同样的原理来实现。<!--

            和 -->是对一些版本低的浏览器起作用,在这些老浏览器中不会将标签中的代码作为文本显示出来,我们要养成这个好习惯。window.open

            (’page.html’)

            用于控制弹出新的窗口page.html,如果page.html不与主窗口在同一路径下,前面应写明路径,绝对路径(http://)或者相对路径(../)均可。用单引号和双引号都可以,只是不要混用。在Flash的Action中则要注意引号,因为我们的getURL已经有双引号了,所以我们要使用单引号。这一段代码可以加入HTML的任意位置,<head>和</head>之间可以,<body>间</body>也可以,越前越早执行,尤其是页面代码长,又想使页面早点弹出就尽量往前放。

            2、经过设置后的弹出窗口

            接着来说一说弹出窗口的参数设置,其实只需在上面的代码中加上一些代码就可以了。这些代码,我们也可以通过Dreamweaver行为面板(Behaviors)中的Open

            browser

            window或者其它的.mxp插件直接加入。我们通过这些代码来定制这个弹出的窗口的外观,尺寸大小,弹出的位置以适应该页面的具体情况。

              <SCRIPT LANGUAGE="javascript">

              <!--

              window.open (’page.html’, ’newwindow’, ’height=100, width=400,

            top=0, left=0, toolbar=no, menubar=no, scrollbars=no,

            resizable=no,location=n o, status=no’) //这句要写成一行

              -->

              </SCRIPT>

            参数解释:

              <SCRIPT LANGUAGE="javascript"> 表明JavaScript脚本的开始;

              window.open 弹出新窗口的命令;

              ’page.html’ 弹出窗口的文件名;

              ’newwindow’ 弹出窗口的名字(不是文件名),非必须,可以为空;

              height=100 窗口高度;

              width=400 窗口宽度;

              top=0 窗口距离屏幕上方的象素值;

              left=0 窗口距离屏幕左侧的象素值;

              toolbar=no 是否显示工具栏,yes为显示;

              menubar=no是否显示菜单栏,yes为显示;

            scrollbars=no是否滚动,yes为滚动;

              resizable=no 是否允许改变窗口大小,yes为允许;

              location=no 是否显示地址栏,yes为显示;

              status=no 是否显示状态栏内的信息,yes为允许;

              </SCRIPT>表明JavaScript脚本的开始结束。

             3、用JavaScript函数控制弹出窗口  

            下面是一个完整HTML页面的代码:

              <html>

              <head>

              <script LANGUAGE="JavaScript">

              <!--

              function openwin() {

              window.open ("page.html", "newwindow", "height=100, width=400,

            toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no,

            status=no") //和上面一行是连在一起的

              }

              //-->

              </script>

              </head>

              <body onload="openwin()">

               //在这里添加页面的内容,如表格等等

              </body>

              </html>

            在这个HTML中我们使用JavaScript脚本定义了一个函数openwin(),函数的作用就是打开一个窗口。我们可以根据我们的目的通过各种不同方式来调用函数打开窗口:

            方式一、FlashMX中,我们可以直接在按钮或关键帧的ActionScript脚本中调用HTML页面<head></head>间的openwin()函数;

            方式二、设定在浏览器装载页面内容时弹出窗口,只需在HTML页面的<body>括号中加入onload="openwin()",即写成<body

            onload="openwin()">;

              方式三、设定在浏览器离开该页面内容时弹出窗口,只需在HTML页面的<body>括号中加入onunload="openwin()",即写成<body

            onunload="openwin()">;

              方式四、使用超级链接来调用该函数,如:

            <a href="#" onclick="openwin()">点击这里打开一个窗口</a>

            ,这里使用的“#”是一个虚链接,目的是让鼠标移到这些文字上时,鼠标会变成小手形状;

              方式五:即就是使用一个按钮来调用函数打开窗口,和上面的基本差不多,不多介绍,代码为:<input type="button"

            onclick="openwin()" value="打开窗口"> 。

             4、使用JavaScript函数控制同时弹出两个窗口 

            这个原理是一样的只是自定义的函数稍有不同而已。我们对前面的源代码稍微改动如下:

              <script LANGUAGE="JavaScript">

              <!--

              function openwin() {

              window.open ("page1.html", "newwindow1", "height=100, width=100,

            top=0, left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no,

            location=n o, status=no")

              window.open ("page2.html", "newwindow2", "height=100, width=100,

            top=100, left=100,toolbar=no, menubar=no, scrollbars=no,

            resizable=no, loca tion=no, status=no")

             }

              //-->

              </script>

            改动以后,调用这个函数就能弹出page1.html和page2.html两个页面了。为避免弹出的两个窗口覆盖,我们稍微让top和left的值不同,控制一下弹出的位置使它们不相互覆盖即可

            。

            注意:两个窗口的名称newwindows1和newwindow2不能相同,或者干脆全部设为空也可以。

             5、弹出的窗口的定时关闭控制

            如果您经常上网的话,您就能体会到,弹出很多的窗口是很讨人厌的。如果能够让弹出窗口经过一定的时间自动关闭就好了。下面我们就来说说怎样控制弹出的窗口的自动关闭。其实我们同样只需加入一小段代码就可以了。我们在弹出的页面的代码中加入一小段代码,(注意是加入page.html的HTML中,可不是主页面中,否则……),让它10秒后自动关闭。请看下面的操作:

            首先,将如下代码加入弹出页面page.html文件的<head>标签中:

              <script language="JavaScript">

              function closeit()

              {

              setTimeout("self.close()",10000) //毫秒

              }

              </script>

              然后,再用<body onload="closeit()"> 这一句话代替page.html中原有的<body>这一句就可以了。

             6、在弹出窗口中加上一个关闭按钮

            其实很简单,只要在弹出窗口中加入一个按钮,在按钮上使用”window.close()”就可以了,如下:

              <FORM>

              <INPUT TYPE=’BUTTON’ VALUE=’关闭’ onClick=’window.close()’>

              </FORM>

            当然,您也可以按页面右上角的关闭按钮关闭窗口的。不知道这里讲的是不是多余?

             7、运用Cookie控制的不重复弹出窗口

            我们上网时总是遇到这样的情况,每次进入同一个页面或者刷新该页面时,弹出窗口会特别的“敬业”,每次都会弹出来。在我们上面使用的方法中就存在这个毛病,因此,当我们要在一个需要频繁经过的页面上面例如首页时,我们有必要进行一定的改动,使它能够“智能化”,只弹出一次。这样的可以让浏览者心情舒畅哦:)我们解决这个问题的途径就是使用Cookie控制了:

            首先,将如下的JavaScript代码加入主页面HTML的<HEAD></HEAD>标签间:

              <script>

              function openwin(){

              window.open("page.html","","width=200,height=200")

              }

              function get_cookie(Name) {

              var search = Name + "="

              var returnvalue = "";

              if (document.cookie.length > 0) {

              offset = document.cookie.indexOf(search)

              if (offset != -1) {

              offset += search.length

              end = document.cookie.indexOf(";", offset);

              if (end == -1)

              end = document.cookie.length;

              returnvalue=unescape(document.cookie.substring(offset, end))

              }

              }

              return returnvalue;

              }

              function loadpopup(){

              if (get_cookie(’popped’)==’’){

              openwin()

              document.cookie="popped=yes"

              }

              }

              </script>

            然后,用<body

            onload="loadpopup()">(注意不是openwin而是loadpop,我们这里的函数不再是openwin了,而是loadpop)替换主页面中原有的<body>标签即可。这里的代码有一点麻烦,但是您不需要理解它,只需知道怎么用它就可以了。可以试着刷新一下这个页面或者重新进入该页面,窗口再也不会弹出了,在也不会烦人了!

             8、在FlashMX打开Chromeless windows

            熟悉网页设计的人会知道现在网页中流行一种叫做Chromeless

            Window的窗口,如图2-3-21所示,它是一种没有菜单条和工具条的窗口,能够拖动。使用在网页上很时髦当然也很实用。

            图片暂缺

            图2-3-21 Chromeless windows

            这种窗口是怎么样做出来的呢?其实它也是通过JavaScript实现的。有专门的打开Chromeless

            Window窗口的Dreamweaver插件,它们可以自动生成打开Chromeless

            Window窗口的代码。如果您看的懂一点JavaScript的话,可以自己把生成的代码考进来,再进行改动。在FlashMX中怎么样使用呢?其实和前面的一样。我们来看一下FlashMX动画所在页面中的JavaScript代码(可以用Dreaweaver插件生成):

            <script language="javascript" type="text/javascript"

            src="../js/chromeless_35.js"></script>

            <script language="javascript">

            function openIT4FLASH(u,W,H,X,Y,n) {

            var cU =’img/close_up.gif’

            var cO =’img/close_ovr.gif’

            var cL =’img/clock.gif’

            var mU =’img/min_up.gif’

            var mO =’img/min_ovr.gif’

            var xU =’img/max_up.gif’

            var xO =’img/max_ovr.gif’

            var rU =’img/res_up.gif’

            var rO =’img/res_ovr.gif’

            var tH =’<font face=verdana size=1>Chromeless Window窗口标题</font>’

            var tW =’ ?nbsp;window title’

            var wB =’#000000’

            var wBs =’#FFFFFF’

            var wBG =’#FF0000’

            var wBGs=’#00FF00’

            var wNS

            =’toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0’

            var fSO =’scrolling=no noresize’

            var brd =10;

            var ful =false;

            var min =false;

            var res =false;

            var tsz =20;

            chromeless(u,n,W,H,X,Y,cU,cO,cL,mU,mO,xU,xO,rU,rO,tH,tW,wB,wBs,wBG,wBGs,wNS,fSO,brd,ful,min,res,tsz)

            }

            </script>

            第一行是把chromeless_35.js的jsScript脚本文件包含进来,这有点C语言中#include的意思。下面的那些就是打开Chromeless

            Window窗口的参数定义了,具体的大家可以自己去试试,我们这里不管它们了。

            代码的工作搞定了,然后回到FlashMX中,对Flash的button中添加动作

            on (release) {

            getURL("javascript/jypenIT4FLASH(’html/zd178.html’,400,200,null,null,’mywinname01’);");

            }

            上面是笔者用的代码,您可以根据自己的情况进行改动,函数中第一项是要打开的页面,后面的两个数字是打开Chromeless

            Window窗口的长宽,其余的参数我们就不介绍了,只是用到了几个主要的参数。

            好了,所有的工作就做完了,要明确的一点是,这里的Flash动画必须放在带有上面JavaScript代码的网页里,也就是说要在Flash动画所在的网页中加入代码。这样,Flash动画和脚本函数在一个页面中,Flash才可以通过Flash内的ActionScript脚本调用在HTML里先定义函数。

            好了,我们弹出窗口的内容就介绍完了,它和FlashMX的关系不是十分的大,但是能够给FlashMX网站带来很大的灵活性。您可以适当的采用它们运用到您的网页中去,使您的网站更有魅力……

历史上的今天:

本文地址:http://blog.zd178.com/?p=469
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
新年快乐
新年快乐

发表评论


表情