Javascript 调用 ActionScript 的简单方法


Posted in Javascript onSeptember 22, 2016

1. 在Flex中,ActionScript调用Javascript是比较简单的,说白了就是,在html里,怎么调用Javascript,在ActionScript就怎么调用就可以了

2. 如果用js调用as,就稍微麻烦一点,其实也比较简单

MXML代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com//mxml" layout="vertical" horizontalAlign="left" backgroundColor="white"
initialize="init()">
<mx:Label text="城市名称:"/>
<mx:List id="cityList" width="" height="" dataProvider="{cities}"/>
<mx:ArrayCollection id="cities">
<mx:String>北京</mx:String>
<mx:String>上海</mx:String>
</mx:ArrayCollection>
<mx:Script>
<![CDATA[
private function init(): void
{
//注册回调函数供JavaScript调用
ExternalInterface.addCallback("callActionScript", asFunctionByJs);
}
private function asFunctionByJs(city: String): void
{
cities.addItem(city); 
}
]]>
</mx:Script>
</mx:Application>

HTML代码(这些代码都是flex builder自动生成的,用于将flash嵌入到网页里,不用仔细看这些代码,注意黄色背景的部分,这是关键部分,是我加入到)

<!-- saved from url=(0014)about:internet -->
<html lang="en">
<!-- 
Smart developers always View Source. 
This application was built using Adobe Flex, an open source framework
for building rich Internet applications that get delivered via the
Flash Player or to desktops via Adobe AIR. 
Learn more about Flex at http://flex.org 
// -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-" />
<!-- BEGIN Browser History required section -->
<link rel="stylesheet" type="text/css" href="history/history.css" />
<!-- END Browser History required section -->
<title></title>
<script src="AC_OETags.js" language="javascript"></script>
<!-- BEGIN Browser History required section -->
<script src="history/history.js" language="javascript"></script>
<!-- END Browser History required section -->
<style>
body {}{ margin: px; overflow:hidden }
</style>
<script language="JavaScript" type="text/javascript">
<!--
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required

var requiredMajorVersion = 9;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 124;
// -----------------------------------------------------------------------------
// -->
</script>
<script type="text/javascript">
function callActionScript(value)
{
//根据id获取flash实例,在这里id是CallAsFromJs,可以从Embed
var flash = (navigator.appName.indexOf ("Microsoft") !=-)?window["CallAsFromJs"]:document["CallAsFromJs"];
//调用ActionScript注册的回调方法
flash.callActionScript(value);
}
</script>
</head>
<body scroll="no">
输入城市名称:<input type="text" id="newCityName"/><input type="button" value="添加城市" onclick="callActionScript(newCityName.value);"/>
<script language="JavaScript" type="text/javascript">
<!--
// Version check for the Flash Player that has the ability to start Player Product Install (6.0r65)

var hasProductInstall = DetectFlashVer(6, 0, 65);
// Version check based upon the values defined in globals
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
if ( hasProductInstall && !hasRequestedVersion ) {
// DO NOT MODIFY THE FOLLOWING FOUR LINES
// Location visited after installation is complete if installation is required
var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
var MMredirectURL = window.location;
document.title = document.title.slice(0, 47) + " - Flash Player Installation";
var MMdoctitle = document.title;
AC_FL_RunContent(
"src", "playerProductInstall",
"FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
"width", "100%",
"height", "100%",
"align", "middle",
"id", "CallAsFromJs",
"quality", "high",
"bgcolor", "#ffffff",
"name", "CallAsFromJs",
"allowScriptAccess","sameDomain",
"type", "application/x-shockwave-flash",
"pluginspage", "http://www.adobe.com/go/getflashplayer"
);
} else if (hasRequestedVersion) {
// if we've detected an acceptable version
// embed the Flash Content SWF when all tests are passed
AC_FL_RunContent(
"src", "CallAsFromJs",
"width", "%",
"height", "%",
"align", "middle",
"id", "CallAsFromJs",
"quality", "high",
"bgcolor", "#ffffff",
"name", "CallAsFromJs",
"allowScriptAccess","sameDomain",
"type", "application/x-shockwave-flash",
"pluginspage", "http://www.adobe.com/go/getflashplayer"
);
} else { // flash is too old or we can't detect the plugin
var alternateContent = 'Alternate HTML content should be placed here. '
+ 'This content requires the Adobe Flash Player. '
+ '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
document.write(alternateContent); // insert non-flash content
}
// -->
</script>
<noscript>
<object classid="clsid:DCDBE-AED-cf-B-"
id="CallAsFromJs" width="%" height="%"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="movie" value="CallAsFromJs.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="allowScriptAccess" value="sameDomain" />
<embed src="CallAsFromJs.swf" quality="high" bgcolor="#ffffff"
width="%" height="%" name="CallAsFromJs" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object>
</noscript>
</body>
</html>

总结,js调用as,大概分为3步:

1.as使用ExternalInterface.addCallback注册回调函数

2.在js函数中根据flash在网页中的id获取实例

3.用上面获取到flash实例,调用as的函数

以上所述是小编给大家介绍的Javascript 调用 ActionScript 的简单方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery中eq和get的区别与使用方法
Apr 14 Javascript
使用JS取得焦点(focus)元素代码
Mar 22 Javascript
使用jquery制作弹出框效果
Apr 03 Javascript
js和jquery分别验证单选框、复选框、下拉框
Dec 17 Javascript
js省市县三级联动效果实例
Apr 15 Javascript
javascript的函数劫持浅析
Sep 26 Javascript
Node.JS文件系统解析实例详解
May 15 Javascript
js实现本地时间同步功能
Aug 26 Javascript
bootstrap table合并行数据并居中对齐效果
Oct 17 Javascript
基于ssm框架实现layui分页效果
Jul 27 Javascript
环形加载进度条封装(Vue插件版和原生js版)
Dec 04 Javascript
Openlayers测量距离与面积的实现方法
Sep 25 Javascript
JavaScript与ActionScript3两者的同性与差异性
Sep 22 #Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
Sep 22 #Javascript
自制微信公众号一键排版工具
Sep 22 #Javascript
IONIC自定义subheader的最佳解决方案
Sep 22 #Javascript
详解Node.js中的事件机制
Sep 22 #Javascript
AngularJS通过$sce输出html的方法
Sep 22 #Javascript
JavaScript 随机验证码的生成实例代码
Sep 22 #Javascript
You might like
PHP中PDO的错误处理
2011/09/04 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
js调用flash的效果代码
2008/04/26 Javascript
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
JQuery插件Quicksand实现超炫的动画洗牌效果
2015/05/03 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
2015/12/24 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
浅谈关于axios和session的一些事
2017/07/13 Javascript
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
2018/09/17 Javascript
Vue.js特性Scoped Slots的浅析
2019/02/20 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
python实现简单的TCP代理服务器
2014/10/08 Python
python绘制简单折线图代码示例
2017/12/19 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
python中的闭包函数
2018/02/09 Python
Python如何获取Win7,Win10系统缩放大小
2020/01/10 Python
python实现简单井字棋游戏
2020/03/04 Python
英国羊绒服装购物网站:Pure Collection
2018/10/22 全球购物
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
《长江之歌》教学反思
2014/04/17 职场文书
公司贷款承诺书
2014/05/30 职场文书
大学生创业计划书
2014/08/14 职场文书
教师批评与自我批评心得体会
2014/10/16 职场文书
2014年技术工作总结范文
2014/11/20 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书