`
xianzhideng
  • 浏览: 61654 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

ActionScript 与 javaScript 互调

    博客分类:
  • RIA
阅读更多

由于flash的安全沙箱机制,导致flex读取客户端本地文件的时候困难重重。需要借用js来实现功能.这里特此总结下ActionScript 与 javaScript 互相调用的方法。

 

1.Flex端代码:test.MXML

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="*" creationComplete="initCall()">
<mx:Script>
	<![CDATA[
		import mx.controls.Alert;
		public function initCall():void{
			//注册提供给javaScript调用的函数
			ExternalInterface.addCallback("sendToActionScript",receivedFromJavaScript);
		}
		
		//提供给javaScript调用的函数
		private function receivedFromJavaScript(value:String):void {
			  Alert.show("JavaScript says: " + value + "\n");
        }
       	
       	//调用javaScript 
        public function transferJavaScript(){
        	ExternalInterface.call("sendToActionScript","ActionScript方法参数1");
        }
	]]>
</mx:Script>	
	<mx:Button x="256" y="216" label="Button" click="transferJavaScript()"/>
</mx:Application>

    ExternalInterface的addCallback方法就将js中调用的名称映射到相应的as的方法上。

    ExternalInterface的call调用js方法。

 

2.引用SWF的html文件JS代码: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};
// -----------------------------------------------------------------------------
// -->
//相关关键代码
 function thisMovie(movieName) {//获取Flex容器,参数必为AS的类名
         if (navigator.appName.indexOf("Microsoft") != -1) {
             return window[movieName];
         } else {
             return document[movieName];
         }
     }
     

function sendToActionScript(value) {//调用ActionScript
        alert(value);
         thisMovie("test").sendToActionScript(value);
     }

</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
  }
// -->
</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="sameDomain" />
			<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>
</body>
</html>

 

 

分享到:
评论

相关推荐

    ActionScript与JavaScript相互调用

    ### ActionScript与JavaScript相互调用 #### 概述 随着互联网技术的发展,网页设计与开发逐渐成为一门重要的技能。在这一领域中,多种脚本语言和技术被广泛应用,以实现更加丰富的用户体验。其中,ActionScript与...

    一个实现ActionScript 与JavaScript 进行相互通信的程序例子

    当需要在Flash内容与网页之间进行数据交换时,就需要实现ActionScript与JavaScript之间的通信。本程序例子旨在展示这种跨平台通信的实现方法。 ActionScript,基于ECMAScript,是Adobe Flash Player和Adobe AIR中的...

    ActionScript与JavaScript在教学中的相互调用.pdf

    ActionScript与JavaScript在教学中的相互调用 ActionScript是Flash中的内置编程语言,而JavaScript是网页浏览器采用的网页文本编程语言。虽然这两种编程语言不同,但是如果在教学中将二者结合起来相互调用,却可以...

    ActionScript与JavaScript相互调用(论文)

    ### ActionScript与JavaScript相互调用 #### 摘要 随着网络技术的发展,网页互动性的增强变得至关重要。本文探讨了如何在ActionScript与JavaScript之间实现相互调用,并借此完成一些单靠任何一种语言都无法实现的...

    actionscript与JavaScript通信

    jsp 就是 servlet,因此能和 jsp 通信也就能和 servlet 通信。当然与 php, asp 通信方法也都是这样的

    actionscript与javascript的区别

    当时Netscape的JavaScript使其在与ie的浏览器大战中独占鳌头,而后ie创建了jscript...另外JavaScript的核心为ecmascript,与actionscript的核心一样,所以学会了JavaScript以后学习actionscript会比较容易,反之亦然。

    基于Starling的AdobeAIRMobileApp手势识别框架_ActionScript_JavaScript_下.zip

    5. **JavaScript**:虽然ActionScript通常是Adobe AIR应用的主要开发语言,但JavaScript也可以通过Apache Cordova等工具集成进来,用于实现一些特定的原生功能或者与HTML/CSS界面交互。在这个项目中,JavaScript可能...

    actionscript api javascript api j2ee api html+dom

    标题中的“ActionScript API、JavaScript API、J2EE API、HTML+DOM”分别代表了四个不同的技术领域,它们是构建Web应用程序和富互联网应用(RIA)的重要组成部分。 ActionScript API是Adobe Flash Player和Adobe ...

    Actionscript与javascript交互实例程序(修改)

    总结来说,Actionscript与JavaScript的交互通过`ExternalInterface`在两个不同环境中建立桥梁,使得Flex应用程序可以利用JavaScript与网页环境进行深度集成,实现诸如数据交换、用户界面更新等功能。这种交互对于...

    javascript和actionscript之间通信实例

    9. **Bridge Libraries**: 有一些开源库,如`swfobject`和`GreenSock's AS3 to JS Bridge`,它们简化了JavaScript与ActionScript之间的通信过程,提供了一种更简单的接口。 在实际开发中,选择哪种通信方式取决于...

    JavaScript与ActionScript3交互问题总结

    JavaScript与ActionScript3交互问题总结 在Web开发中,JavaScript是一种广泛使用的客户端脚本语言,而ActionScript3(AS3)则是Adobe Flash平台的核心语言。两者在不同的领域中发挥着重要作用,但有时需要进行交互...

    javascript与actionscript的交互.[课件]

    本课程将深入探讨 JavaScript 与 ActionScript 之间的交互机制,这对于创建丰富的互联网应用程序(RIA)和混合型跨平台应用来说至关重要。 1. JavaScript 基础: JavaScript 是一种轻量级、解释型的编程语言,主要...

    基于ActionScript以及JavaScript语言的标绘扩展符号库.zip

    javascript

    javascript与actionscript3.0通信实例.rar

    在现代Web开发中,有时我们需要在浏览器端的JavaScript与Flash内容(使用ActionScript编写)之间进行交互,以实现更丰富的用户体验。本教程将深入探讨这两种语言之间的通信机制,特别关注在兼容Firework程序时的实现...

    ActionScript菜鸟基础终极教程

    ActionScript 基础知识点总结 ActionScript 是 Flash ...ActionScript 是一种吸收了多种编程语言特点的语言,它与 JavaScript 等编程语言有相似之处。学习 ActionScript 需要了解基本的编程概念和 Flash 的基本操作。

    CSS中文 Flash.ActionScript.as3.0 JavaScript 语言参考

    JavaScript是一种广泛使用的客户端脚本语言,常用于网页动态效果和与用户交互。JavaScript的基础包括变量、数据类型、运算符、流程控制(条件语句、循环)、函数、对象和数组。进阶内容涵盖DOM操作(文档对象模型,...

    SWF(ActionScript3.0)与JavaScipt(JS)通信示例

    推荐对所有JavaScript与ActionScript之间的通信使用ExternalInterface。 在HTML页中使用JavaScript,可以调用FlashPlayer中的ActionScript函数。ActionScript函数可以返回一个值,JavaScript会立即接收它作为该调用...

Global site tag (gtag.js) - Google Analytics