JS与FLEX|AS实现互相调用

1.AS代码

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
	width="200" height="200" creationComplete="initApp()">
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
		  	import flash.external.ExternalInterface;
			 
			 Security.allowDomain("*"); 
   			 Security.allowInsecureDomain("*"); 
			 
		     public function initApp():void {
		     	//js要调用flex方法,首先在flex中必须注册,将as方法注册为js可调用的方法
		     	//第一个是js中调用时用的名称,第二个是as中定义的方法
		        ExternalInterface.addCallback("flexFunctionAlias",asFunc);
		     }
		     
		     public function asFunc():void {
		        Alert.show("js 调用flex 成功!");
		     }
		     
		     public function getJsFunction():void{
		     	ExternalInterface.call("getJsName","姓名"); //调用js函数 getJsName
		     }
		     
		]]>
	</mx:Script>
	<mx:Button click="getJsFunction()" label="调用js"/>
</mx:Application>

2.html代码(index.template.html)

function getJsName(name){
	alert("flex调用js成功:"+name);
}

function getFlexMsg()
{
  Test4.flexFunctionAlias();
}
<button onclick="getFlexMsg()">点击调用flex方法</button>

以下为所有的index.template.html代码

<!-- 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-8" />

<!--  BEGIN Browser History required section -->
<link rel="stylesheet" type="text/css" href="history/history.css" />
<!--  END Browser History required section -->

<title>${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: 0px; overflow:hidden }
</style>
<script language="JavaScript" type="text/javascript">
<!--
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = ${version_major};
// Minor version of Flash required
var requiredMinorVersion = ${version_minor};
// Minor version of Flash required
var requiredRevision = ${version_revision};
// -----------------------------------------------------------------------------
// -->
</script>
</head>

<body scroll="no">
<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", "${width}",
		"height", "${height}",
		"align", "middle",
		"id", "${application}",
		"quality", "high",
		"bgcolor", "${bgcolor}",
		"name", "${application}",
		"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", "${swf}",
			"width", "${width}",
			"height", "${height}",
			"align", "middle",
			"id", "${application}",
			"quality", "high",
			"bgcolor", "${bgcolor}",
			"name", "${application}",
			"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
  }
  
function getJsName(name){
	alert("flex调用js成功:"+name);
}

function getFlexMsg()
{
  Test4.flexFunctionAlias();
}
// -->
</script>
<noscript>
  	<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="${application}" width="${width}" height="${height}"
			codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
			<param name="movie" value="${swf}.swf" />
			<param name="quality" value="high" />
			<param name="bgcolor" value="${bgcolor}" />
			<param name="allowScriptAccess" value="always" />
			<embed src="${swf}.swf" quality="high" bgcolor="${bgcolor}"
				width="${width}" height="${height}" name="${application}" 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>
<button onclick="getFlexMsg()">点击调用flex方法</button>
</body>
</html>

JS与FLEX|AS实现互相调用,布布扣,bubuko.com

时间: 2024-11-08 22:23:09

JS与FLEX|AS实现互相调用的相关文章

JS和C#访问遇到QueryInterface调用出错

在原来的WinForm里,我们只要在窗体类的头部添加属性[System.Runtime.InteropServices.ComVisibleAttribute(true)],然后 webBrowser1.ObjectForScripting = this:这样设置完后,页面上的JS就能访问窗体类的方法了,但是添加WeifenLuo.WinFormsUI.Docking.DockContent作为窗体的父类后如果这样设置却会出现如下提示: 执行了QueryInterface调用,请求提供 COM

js实现方法的链式调用

假如这里有三个方法:person.unmerried();person.process();person.married();在jQuery中通常的写法是:person.unmerried().process().married();而在js中要实现链式调用,只需在类中的每个方法中通过this关键字返回对象实例的引用. function Person(){}; Person.prototype.status =false; Person.prototype.married =function()

js iframe 与 父窗体的调用

调子窗体 window.document.getElementById('vocabularymanagerIframe').contentWindow.gridStoreReload(obj); 调父窗体 window.parent.reloadVocabularyGrid(obj); js iframe 与 父窗体的调用

Flex父子窗体相互调用

Flex父子窗体相互调用 1.设计思路 (1)子窗体调用父窗体的方法 (2)子窗体做了改动后,返回父窗体,父窗体调用子窗体函数 2.设计源代码 (1)父窗体 ParentWindow.mxml: <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library:/

html5的postmessage实现js前端跨域访问及调用解决方案

关于跨域访问,使用JSONP的方法,我前面已经demo过了,具体见http://supercharles888.blog.51cto.com/609344/856886,HTML5提供了一个非常强大的API,叫postMessage,它其实就是以前iframe的进化版本,使用起来极其方便,这里举个实验例子: 我们依旧按照与上文相同的设定,假定我们有2个Domain Domain1: http://localhost:8080  它上面有个应用叫HTMLDomain1,并且有个页面叫sender.

unity中js脚本与c#脚本互相调用

unity中js脚本与c#脚本互相调用 test1.js function OnGUI() { if(GUI.Button(Rect(25,25,100,30),"JS Call CS" )) { var c = gameObject.GetComponent("test2"); c.PrintTest(); } } function testPrint() { print("CS Call JS"); } test2.cs using Unit

js函数的各种写法与调用

以下是我见过的各种js函数的各种写法以及调用,虽然有些写法及其调用我不清楚其专业术语叫啥,但并不影响我写一个总结笔记. 我们刚开始接触js语音,经常看到的这种名叫“使用function关键字来定义函数”的写法,如: function f(e){ alert(e); }f("hello world"); 把函数赋值给一个变量,这种大概叫“表达式方式定义函数”吧,如: var f=function(e){ alert(e); }f("hello world"); 如上,

【微信】微信小程序 微信开发工具 创建js文件报错 pages/module/module.js 出现脚本错误或者未正确调用 Page()

创建报错pages/module/module.js 出现脚本错误或者未正确调用 Page() 解决方法: 在js文件中添加 Page({ }) 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/9076274.html

【JS】Js中函数的三种调用方式

在同一个页面中,函数名必须是唯一的,并且区分大小写.Js中可以通过下面三种方式调用函数: 1. 函数的简单调用 2. 在事件的响应中调用函数 3. 通过连接调用函数 具体是怎么操作的呢,下面一一讲解: 函数的简单调用:函数的定义语句通畅被放在HTML文件的<head>内,而函数的调用语句通常被放在<body>中.如果函数定义之前调用函数,执行将会出错. 语法如下: <head> <script type="text/javascript">