AS和JS互相调用有个很酷的特性(as2.0)

JavaScript和ActionScript互相调用时,其实有个非常好的特性,不过貌似很少有人提到这个 特性:它们之间的数据类型对方均可以识别。因此,你可以通过swf提供的接口来传递对象、数组、字符串等等。不过它们之间传递的参数的值的长度有限制(具体长度还没仔细测试),因此你不能把JavaScript中的一个超大的对象直接传递进去。不过即使是这样,已经非常好用了,看看示例代码:

as2 代码:

import flash.external.*; 
// 创建一个行的TextField来显示调用结果 
var t:TextField = this.createTextField(’t’, this.getNextHighestDepth(), 10, 10, 300, 200);  
t.text = ’ready’; 
// 这个是要给JavaScript调用的函数 
function test(obj){ 
    var s = []; 
    for(var p in obj){ 
        s.push(p + ’: ’ + obj 
); 
    } 
    t.text = s.join(’rn’); 

// 添加调用接口 
var testsuc:Boolean = ExternalInterface.addCallback("test", null, test); 
t.text = [’test: ’, testsuc].join(’n’); 
// 调用JavaScript,告诉JavaScript我已经准备好了 
ExternalInterface.call(’ready’, {a:’a string’, b:’string b’}); 

JavaScript代码:

var swfId = ’call_swf’ 
function ready(){ 
    // 获取flash传递过来的参数 
    var o = arguments[0]; 
    var s = []; 
    for(var p in o){ 
        s.push([p, ’: ’, o 
].join(’’)); 
    } 
    // 打印传递进来的对象的内容 
    alert(s.join(’n’)); 
     
    var swf = document[swfId] ? document[swfId] : window[swfId]; 
    // 调用flash提供的接口 
    swf.test({a:’a string’, b:’string b’}); 

时间: 2024-08-02 06:46:49

AS和JS互相调用有个很酷的特性(as2.0)的相关文章

asp.net动态添加js文件调用到网页的方法

asp.net动态添加js文件调用到网页的方法         本文实例讲述了asp.net动态添加js文件调用到网页的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 HtmlGenericControl JsControl = new HtmlGenericControl("script"); JsControl.Attributes.Add("type", "text/javascript"); JsControl.Att

JS随机调用指定函数的方法

  本文实例讲述了JS随机调用指定函数的方法.分享给大家供大家参考.具体如下: 本代码通过随机定时器调用指定函数,可达到间隔随机时间之行指定的函数的目的 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 function randRange(data) { var newTime = data[Math.floor(data.length * Math.random())]; return newTime; } function toggleSomething() { var ti

js动态调用css属性的小规律

 本篇文章主要介绍了js动态调用css属性的小规律及实例说明.需要的朋友可以过来参考下,希望对大家有所帮助 刚才看到一篇好的文章介绍js调用css属性,( ^_^ )不错嘛!免的自己忘记,总结一下   1.对于没有中划线的css属性一般直接使用style.属性名即可.   如:obj.style.margin,obj.style.width,obj.style.left,obj.style.position等.   2.对于含有中划线的css属性,将每个中划线去掉并将每个中划线后的第一个字符换成

JS方法调用括号的问题探讨

 JS方法调用括号的问题很是令人头疼,下面有个不错的示例,感兴趣的朋友可以参考下 移动端的html页面,    写了一个函数.   代码如下: function showAlert(msg,fn){  showDialog("alert", msg,"温馨提示",260);  if(isNull(fn) == false){  $("#SD_confirm").unbind("click");  $("#SD_con

js定时调用方法成功后并停止调用的实现

 这篇文章主要介绍了js定时调用方法成功后并停止调用的实现,需要的朋友可以参考下  代码如下: <pre name="code" class="javascript"><pre name="code" class="javascript"> <span style="color: rgb(58, 62, 67); font-family: 'Segoe UI Semibold', 'Se

js如何调用qq互联api实现第三方登录

 这篇文章主要介绍了js如何调用qq互联api实现第三方登录,需要的朋友可以参考下 qq互联js SDK:http://wiki.connect.qq.com/js_sdk%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E   代码如下: <script type=text/javascript>    在页面header中引入:<script type="text/javascript"  src="http://qzonestyle

用js直接调用驱动软件来使用扫描仪,可以不装OCX吗

问题描述 用js直接调用驱动软件来使用扫描仪,可以不装OCX吗 就是不弄插件OCX,能否直接用JS去调用驱动软件使用扫描仪 解决方案 不可以,js在浏览器内运行,不能直接调用驱动. 解决方案二: 你这种要求就不是b/s的,干嘛要弄成b/s的,直接c/s就行了,或者html存为hta

jquery lazyload js-jquery lazyload.js插件调用会使滚动条回到顶部的问题

问题描述 jquery lazyload.js插件调用会使滚动条回到顶部的问题 我有一个需求是需要将页面滑到底部的时候会用ajax去服务端请求数据然后动态的加载到页面上,这时候我会去加载一次jquery lazyload.js的lazyload方法,使我动态加载的内容的图片也异步加载进来,图片效果是出来了,但是引发出了一个新的问题,每次动态加载数据后我的页面滚动条又回到了页面的顶端,就好像页面刷新了一样,问题定位下来就是由于加了lazyload方法后就出现的.有没有大神可以帮忙解决这个问题,最终

求一个接口能使js直接调用到ios开发里面的方法

问题描述 求一个接口能使js直接调用到ios开发里面的方法 求一个接口能使js直接调用到ios开发里面的方法,就是js里面连接一个接口,能直接调用ios里面的函数,进行数据的交互 解决方案 参考iOS中JavaScript和OC交互