用ActionScript与JavaScript实现Flash与网页的交互

Flash与网页交互效果图
clipboard.pngjavascript

Flash有强大的绘图功能、图形功能,可以与网页的参数传递联系起来,配合后端的服务器语言,可以收到很大效果。不过这样编程比较麻烦,要调试Flash,而后要放到服务器上调试。html

1、Flash部分java

一、首先,新建一个ActionScript3.0的Flash,新建以后就保存为webPage.fla,此次的Flash无须这么大的尺寸,不然网页中会有不少的留白,设置大小为500x100px就能够了。web

clipboard.png

二、经过窗口->组件,或者Ctrl+F7打开组件面板,利用自带的按钮、标签文本、输入框组件布置界面。编程

clipboard.png

三、拖出以下的界面,设置各个组件的属性以下,设置其text值,也就是要显示的文字,为部分要控制的组件设置实例名称,也就是Id,好比按钮设置成Button1,输入框设置成EditField1,一下子要给网页JavaScript控制的标签文本的text值清空,其实例名称为Label1。后端

clipboard.png

四、以后点击第一帧,打开动做面板,或者点击F9,写入以下的代码:浏览器

import flash.external.ExternalInterface;服务器

flash.system.Security.allowDomain("*");
flash.system.Security.allowInsecureDomain("*");//设置容许全部网站都容许Flash与网页之间交互app

Button1.addEventListener("click",function(){//点击Button1这个按钮函数

ExternalInterface.call("show",EditField1.text);
//则调用JavaScript中的function show(message){}函数,其中message这个参数值,由EditField1输入的东西填充

});

function JavaScriptShow1(message1){

//定义一个函数,一旦这个函数触发则把传来的值,填充Label1这个标签文本
Label1.text=message1;

}
ExternalInterface.addCallback("JavaScriptShow1",JavaScriptShow1);
//注册JavaScriptShow1这个函数,其对外名称为JavaScriptShow1,通常都应该相同的
//网页调用Flash对象的JavaScriptShow1的方法,则至关于调用ActionScript中的JavaScriptShow1(message1){}函数

五、此时Flash的部分完毕,选择文件->发布,打开Flash保存的文件夹,你会发现生成了swf文件。。

2、网页的部分

一、以后,要把这个Flash布置到网页上。Flash发布以后,会在网页中生成两个东西一个html与一个swf,核心文件是.swf文件,html文件不能照搬的,只能借鉴其中的代码,不然不能兼容火狐、谷歌等浏览器。

这个由Flash生成webPage.html页面,能够借鉴的代码以下:

clipboard.png

二、因为Flash禁用了Flash调用本地文件的功能。你只能把这个webPage.swf拷贝到你的服务器上调试。以后在服务器上新建一个.html的页面,这里以swf.html与webPage.swf同目录作例子,若是不一样例子请本身设置好绝对路径,假设是swf.html,swf.html的HTML布局以下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&...; lang="zh-CN" xml:lang="zh-CN">

<head>
    <title>webPage</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />        
</head>
<body>
    Flash与网页交互
    <input type="text" id="text1" />
    <button onclick="toFlash()">发信息给Flash!</button>
    <!--这段代码的部分能够在发布出来的html中截取-->
    <div>            
        <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="100" id="webPage" align="middle"><!--这里的id是为了flash给IE系列浏览器控制-->
            <!--对IE有效的代码-->
            <param name="movie" value="webPage.swf" /><!--为IE浏览器指明flash的路径-->
            <param name="quality" value="high" />
            <param name="bgcolor" value="#ffffff" />
            <param name="play" value="true" />
            <param name="loop" value="true" />
            <param name="wmode" value="window" />
            <param name="scale" value="showall" />
            <param name="menu" value="true" />
            <param name="devicefont" value="false" />
            <param name="salign" value="" />
            <param name="allowScriptAccess" value="always" /><!--这里必定要设置成always,打开Javascript与Actionscript的交互权限-->
            <!--对野狐禅、谷歌等有效的代码-->
            <embed src="webPage.swf" width="500" height="100" id="webPage"></embed><!--这里的id是为了flash给野狐禅、谷歌等浏览器控制,src的值为野狐禅、谷歌等浏览器指明flash的路径-->
        </object>
    </div>
</body>

</html>
以后的JavaScript布局,是ActionScript与JavaScript交互的核心,代码以下:
<script type="text/javascript">

//给ActionScript所调用的JavaScript函数,message这个参数被ActionScript传递过来的值所填充
function show(message){    
    alert(message);
}

//获取Flash对象的函数,不一样的对象有不一样的方法。为了兼容,只能这样写。
function getFlash(movieName){
    if (window.document[movieName]) {
        window.document[movieName];
    }
    if (navigator.appName.indexOf("Microsoft Internet") == -1) {
        if (document.embeds && document.embeds[movieName]) 
            return document.embeds[movieName];
    }
    else {
        return document.getElementById(movieName);
    }
}

//获取Flash对象
var flash1 = getFlash('webPage');

//JavaScript调用ActionScript中注册为JavaScriptShow1的函数
function toFlash(){
    var text1 = document.getElementById("text1").value;
    flash1.JavaScriptShow1(text1);
}

</script>

3、总结

综上所述,webPage.swf与swf.html的交互以下图:

clipboard.png


做者:yongh701
来源:CSDN
原文:https://blog.csdn.net/yongh70... 版权声明:本文为博主原创文章,转载请附上博文连接!

相关文章
相关标签/搜索