前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AS3和JS通信

AS3和JS通信

作者头像
py3study
发布2020-01-13 12:31:13
6940
发布2020-01-13 12:31:13
举报
文章被收录于专栏:python3python3

运行环境:需要安装IIS,创建网站目录

AS3和外部容器通信方法比较简单:

代码语言:javascript
复制
import flash.text.TextField;

var txt:TextField = new TextField();
this.addChild(txt);
txt.text = "等待...";

//向JS注册方法,JS调用as3Function这个方法,就是执行callback这个方法
ExternalInterface.addCallback("as3Function",callback);
function callback($param:String):void
{
	txt.text = $param;
}
//直接调用SJ的方法getReady
ExternalInterface.call("getReady");

注意:先调用ExternalInterface.addCallback,再调用ExternalInterface.call

JS代码:

代码语言:javascript
复制
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>FLASH与JS交互</title>
<script language="JavaScript">
	var jsReady = false;
    function pageInit()
	{
		jsReady = true;
	}
	/**页面没有加载完成会返回false,flash需要再次调用此方法*/
	function getReady()
	{
		if(jsReady)
		{
			//as3Function方法是flash注册的方法
			getSwfInstance("FlashID").as3Function("成功");
		}
		else
		{
			return jsReady;
		}
    }
	/**获取flash,这里注意:<embed>元素name属性是获取的根据*/
	function getSwfInstance(name)
	{
		if (navigator.appName.indexOf("Microsoft") != -1)
		{ 
			return window[name]; 
		}
		else
		{ 
			return document[name]; 
		}
	}
</script>
</head>
<body onLoad="pageInit()">
    <object id="flash" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400"
    codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0">
        <param name="movie" value="test.swf">
        <param name="quality" value="high">
        <param name="bgcolor" value="#F0F0F0">
        <param name="menu" value="false">
        <param name="wmode" value="opaque">
        <param name="FlashVars" value="">
        <param name="allowScriptAccess" value="sameDomain">
        <embed id="embedID" src="test.swf"
            name="FlashID"
            width="550"
            height="400"
            align="middle"
            quality="high"
            bgcolor="#f0fff8"
            menu="false"
            play="true"
            loop="false"
            FlashVars=""
            allowScriptAccess="sameDomain"
            type="application/x-shockwave-flash"
            pluginspage="http://www.adobe.com/go/getflashplayer">
        </embed>
	</object>
</body>
</html>

注意:swf的文件嵌入到html中的方法比较多,特别关键的要可以获取到所嵌入的swf对象,通过代码你可发现获取swf对象,是通过embed中的name属性。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档