博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用ActionScript与JavaScript实现Flash与网页的交互
阅读量:5835 次
发布时间:2019-06-18

本文共 2804 字,大约阅读时间需要 9 分钟。

Flash与网页交互效果图

clipboard.png

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

一、Flash部分

1、首先,新建一个ActionScript3.0的Flash,新建之后就保存为webPage.fla,这次的Flash无须这么大的尺寸,否则网页中会有很多的留白,设置大小为500x100px就可以了。

clipboard.png

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

clipboard.png

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

clipboard.png

4、之后点击第一帧,打开动作面板,或者点击F9,写入如下的代码:

import flash.external.ExternalInterface;

flash.system.Security.allowDomain("*");

flash.system.Security.allowInsecureDomain("*");//设置允许所有网站都允许Flash与网页之间交互

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){}函数

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

二、网页的部分

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

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

clipboard.png

2、由于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="; lang="zh-CN" xml:lang="zh-CN">

    webPage    
Flash与网页交互

</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>

三、总结

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

clipboard.png


作者:yongh701

来源:CSDN
原文:
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的文章
对 Java 意义重大的 7 个性能指标
查看>>
京东 60 天哗变!CTO 成优化第一人 | 畅言
查看>>
Java 四种线程池的介绍和使用
查看>>
Linux软件包管理
查看>>
DNS服务器安装
查看>>
nginx 1.9 安装
查看>>
全屏录制播放控件--Android 开发中关于视频录制和播放的诸多问题处理
查看>>
十诫诗—皎月清风和白衣悠蓝
查看>>
Windows Server 2008 RemoteApp(六)---远程桌面网关服务器
查看>>
咬文嚼字-计算机组成原理篇
查看>>
在三层交换机上配置DHCP服务的详细步骤
查看>>
PHP安装ffmpeg模块的使用方法
查看>>
Linux 系统 sudo使用者身份切换
查看>>
Cisco交换机 正确连接和初级配置
查看>>
CSS3笔记-如何建立一个半透明层
查看>>
html5 地理定位 008
查看>>
java环境安装
查看>>
Linux 高可用(HA)集群之Corosync详解
查看>>
当我在学习的时候,我在想些什么
查看>>
用javascript统计字数,中文计数问题
查看>>