JavaScript与ActionScript函数相互调用

2016-02-19 19:38 9 1 收藏

下面是个超简单的JavaScript与ActionScript函数相互调用教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

【 tulaoshi.com - Web开发 】

1、在JavaScript中调用Flex(ActionScript)方法

在Flex中可以用ExternalInterface来调用Flex的方法。

在Flex应用中通过调用addCallback()可以把一个方法添加到列表中。addCallback将一个ActionScript的方法注册为一个JavaScript和VBScript可以调用的方法。

ddCallback()函数的定义如下:

addCallback(function_name:String, closure:Function):void

function_name参数就是在Html页面中脚本调用的方法名。closure参数是要调用的本地ActionScript方法,这个参数可以是一个方法也可以是对象实例。

例子:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

mx:Script
    import flash.external.*;
    public function asFunc():String {
        return "Hello Flex";
    }
    public function initApp():void {
        ExternalInterface.addCallback("flexFunctionAlias",asFunc);
    }
/mx:Script

那么在Html页面中,先获得SWF对象的引用,也就是用object .../声明的Swf的Id属性,比如说是MyFlexApp。然后就可以用以下方式调用Flex中的方法。

SCRIPT language='JavaScript' charset='utf-8'
    function callApp() {
        var x = MyFlexApp.flexFunctionAlias();
        alert(x);
    }
/SCRIPT
button Call App/button

2、在Flex(ActionScript)中调用 JavaScript(后面有实例)

在Flex中调用JS代码就方便得多。你可以调用 Html页面中的JavaScript,通过与JavaScript的交互,可以改变Style,调用远程方法。还可以将数据传递给Html页面,处理后 再返回给Flex,完成这样的功能主要有两种方法:ExternalInterface()和navigateToUrl()。

在Flex中调用JavaScript最简单的方法是使用ExternalInterface(),可以使用此API调用任意JavaScript,传递参数,获得返回值,如果调用失败,Flex抛出一个异常。

ExternalInterface封装了对浏览器支持的检查,可以用available属性来查看。

ExternalInterface的使用非常简单,语法如下:

flash.external.ExternalInterface.call(function_name: String[, arg1, ...]):Object;

参数function_name是要调用的JavaScript的函数名,后面的参数是JavaScript需要的参数。

举个例子说明如何调用JavaScript函数

Flex应用中,添加如下方法:
mx:Script
?xml version="1.0" encoding="iso-8859-1"?
mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    mx:Script
        import flash.external.*;
   
        public function callWrapper():void {
            var f:String = "changeDocumentTitle";
            var m:String = ExternalInterface.call(f,"New Title");
            trace(m);
        }
    /mx:Script
    mx:Button label="Change Document Title" click="callWrapper()"/
/mx:Application
Html页面中有如下函数定义:
SCRIPT LANGUAGE="JavaScript"
    function changeDocumentTitle(a) {
        window.document.title=a;
        return "successful";
    }
/SCRIPT

应用例子
1。在Flex程序中打开一个浏览器窗口

//---CallJSApp.mxml

?xml version="1.0" encoding="utf-8"?

mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" viewSourceURL="srcview/index.html"

      mx:Script

            ![CDATA[

                  import mx.validators.ValidationResult;

                  import cwmlab.util.*;                 

                  private function openBrowser():void

                  {

                        MyURLUtil.openWindow("http://www.google.com/");

                  }                                  

            ]]

      /mx:Script

      mx:HBox width="100%"

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

            mx:Button label="open" click="openBrowser()"/      

      /mx:HBox     

/mx:Application

//--MyURLUtil.as

package cwmlab.util

{   

      import flash.external.ExternalInterface;   

      public class MyURLUtil   

      {       

            protected static const WINDOW_OPEN_FUNCTION : String = "window.open";    

            public static function openWindow(url : String, window : String = "_blank",

                  features : String = "") : void{

                  ExternalInterface.call(WINDOW_OPEN_FUNCTION, url, window, features);       

          }

      }

}// ActionScript file

来源:http://www.tulaoshi.com/n/20160219/1621485.html

延伸阅读
标签: Web开发
作者:F. Permadi 译者:Sheneyan(子乌) 英文原文: INTRODUCTION TO JavaScript Functions 中文译文(包括示例):javascript的函数 子乌注:一篇相当不错的function入门文章,个人感觉相当经典。 词语翻译列表: function:函数(Function未翻译) declare:定义 assign:指派,分配 functionbody:函数体(就是函数的内容) object:对象 prop...
在用HTML5做跨平台应用开发时,尝尝会用到java和js方法互调的问题,对初学者而言,可能会有点难,在这里分享一些自己在实际开发过程中的用法,希望对你有帮助: 首先是js代码调用java代码介绍: 代码如下: public class CzingLBWebMain extends DroidGap { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(saved...
标签: Web开发
JavaScript有许多小窍门来使编程更加容易。其中之一就是eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。以下是它的说明  Eval 函数 功能:先解释Javascript代码,然后在执行它 用法:Eval(codeString) codeString是包含有Javascript语句的字符串,在eval之后使用Javascript引擎编译。  举个...
Windows98系统的许多软件中都包含一个windows风格的about窗口,它向用户反映了当前系统的一些基本信息,其中显示有关windows及其应用软件的版本、版权和系统的工作状态等信息。笔者用VB6.0通过调用API函数设计应用系统的ABOUT窗口。 1.建立含有如下控件的窗体: 控件NAMECAPTION 窗体FORM1用VB6.0设计ABOUT窗口命令按钮C...
标签: Web开发
JavaScript中small函数方法是将 HTML 的SMALL 标识添加到String 对象中的文本两端。使用方法: strVariable.small( )"String Literal".small( ) 下面的示例演示了 JavaScript中small函数方法是如何使用的: var strVariable = "This is a string";strVariable = strVariable.small( ); 在上一条语句...

经验教程

399

收藏

25

精华推荐

Javascript trim()函数实现

Javascript trim()函数实现

低调的导弹

javascript之eval函数

javascript之eval函数

祁祁IT

javascript函数库

javascript函数库

祖传秘方great

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部