`
michaeltangbin
  • 浏览: 267805 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江省
社区版块
存档分类
最新评论

JavaScript与ActionScript交互简单实例

阅读更多

    之前一直在研究AS,虽然对JS与AS通信也充满了好奇。正好,今天有同学,在工作的时候要到用相关的技术。我就研究了一下,做了一个简单实例。简单的实现了JS与AS之间的通信。

      首先,看一下JS调用AS。在Flex中通过ExternalInterface调用addCallback()来将AS的一个方法注册为一个JS和VBScript可以调用的方法。

      函数如下:

addCallback(function_name:String, closure:Function):void
其中function_name就是Flex对外部展示,能够被JS调用的函数。

closure是Flex中AS写的函数。

      现在Flex中,已经讲AS代码提供出来了,等待JS去调用。那么在Html页面中,先获得SWF对象的引用,也就是用<object .../>声明的Swf的Id属性,比如说是MyFlexApp。然后就可以用MyFlexApp调用Flex中的方法了。

       JS调用AS完整实例如下

      Flex工程代码

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
	layout="absolute" width="404" height="314"
    creationComplete="initApp()">
	<mx:Script>
		<![CDATA[
		
     		import flash.external.*;                   //引入ExternalInterface
    		public function myAsFuncn(js:String):String
    		{
    			return  "js:"+js+"访问了as:"+asInput.text;
    		}
		    public function initApp():void 
		    {
		        ExternalInterface.addCallback("myJsFunction",myAsFuncn);
		    }

			
		]]>
	</mx:Script>
	<mx:Button x="169.5" y="162" label="点击" fontSize="14"/>
	<mx:TextInput  id="asInput" x="122" y="76"/>
	
</mx:Application>

   Html代码

 

 

<html>
  <head>
	<script language="JavaScript">

		function callAs( )
		{
			var myFlexfun=document.getElementById("myFlexFun");
			var result=myFlexfun.myJsFunction(jsinput.value);
			alert(result);
		}
	</script>
  </head>
	<body>
	   <table>
		<tr>
		   <td> 
 <object id= "myFlexFun" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="400" height="300"> 
<param name="movie" value="test.swf" /> 
<param name="quality" value="high" /> 
<embed src="test.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="400" height="300"></embed> 
</object> </td>
		</tr>
		<tr>
		   <td> <input type="input" id="jsinput"/><input type="button" value="点我看效果" onclick="callAs()"/></td>
		</tr>	
          </table>
	</body>
</html>

 

 测试结果

 

到此,JS调用AS完毕!

 

 

  • 大小: 13.7 KB
分享到:
评论
3 楼 leipan19890705 2012-07-04  
AS调用JS里的呢?有没有?我的一直不成功。
2 楼 brightACE 2011-03-21  
不错,学习了
1 楼 zhengyutong 2010-02-08  
不错,收藏了。

相关推荐

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

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

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

    主要介绍了Actionscript与javascript交互实例程序(修改)的相关资料,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下

    ActionScript开发人员指南中文版

    外部API示例:在ActionScript和Web浏览器中的JavaScript之间进行通信 第章:AIR中的XML签名验证 XML签名验证的基础知识 关于XML签名 实现IURIDereferencer接口 第章:客户端系统环境 客户端系统环境基础知识 使用...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    ActionScript 3.0 开发人员指南 (AS3开发帮助文档)

    第 45 章 : 与其他 Flash Player 和 AIR 实例通信 第 46 章 : 与 AIR 中的本机进程通信 第 47 章 : 使用外部 API 第 48 章 : AIR 中的 XML 签名验证 第 49 章 : 客户端系统环境 第 50 章 : AIR 应用程序的调用...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    Flex企业应用开发实战源代码

    10.1 与网页进行交互 300 10.1.1 通过参数接受外部信息 300 10.1.2 使用navigateToURL方法调用JavaScript 302 10.1.3 ExternalInterface API 303 10.2 在Flex中使用Flash CS所开发的控件 306 10.3 Flex访问.Net...

    flex3的cookbook书籍完整版dpf(包含目录)

    与操作系统剪贴板交互 23.12节.添加HTML内容 23.13节.在ActionScript和JavaScript之间跨脚本操作 23.14节.本地SQL数据库 23.15节.检测和监控网络连接 23.16节.检测用户是否在线 23.17节.创建系统托盘图标 第二十四章...

    java开源包1

    提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java...

    java开源包2

    提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java...

    java开源包3

    提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java...

    java开源包6

    提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java...

    java开源包5

    提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java...

    java开源包10

    提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java...

    java开源包8

    提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java...

    java开源包7

    提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java...

    java开源包9

    提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java...

    java开源包11

    提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。 Java类重加载工具 JReloader JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java...

Global site tag (gtag.js) - Google Analytics