1. 程式人生 > >Flex與JavaScript互動呼叫函式

Flex與JavaScript互動呼叫函式

一、在JavaScript中呼叫Flex方法 

在 Flex 應用中,需要在方法列表中新增指定的公用方法,這樣Flex中的方法才能被JS呼叫到。在Flex中需要通過呼叫addCallback()可以把一個方 法新增到此列表中。 addCallback將一個ActionScript的方法註冊為一個JavaScript和VBScript可以呼叫的方法。

addCallback()函式的定義如下:

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

function_name引數就是在Html頁面中指令碼呼叫的方法名。closure引數是要呼叫的本地方法,這個引數可以是一個方法也可以是物件例項。

舉個例子:

1.在Flex頁面:

<mx:script>

     import flash.external.*;

     public function myFunc():Number {

         return 0;

     }

     public function initApp():void {

         ExternalInterface.addCallback( "myFlexFunction" ,myFunc);

     }

</mx:script>

2.那麼在Html頁面中,先獲得SWF物件的引用,也就是<object/>部分:

宣告的Swf的Id屬性,比如說是MyFlexApp。然後就可以用以下方式呼叫Flex中的方法。

<script language= "JavaScript" >

     function callApp() {

         var x = MyFlexApp.myFlexFunction();

         alert(x);

     }

</script>

< input onclick = "callApp()" value = "Test" type = "button" >

二、在Flex中呼叫 JavaScript函式 

同樣,我們也可以呼叫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函式

1.Flex應用中,新增如下方法:

<mx:script>

<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>

</mx:script>

2.Html頁面中有如下函式定義:

<script language= "JavaScript" >

     function changeDocumentTitle(a){

         window.document.title = a;

         return "successful" ;

     }

</script>

相關推薦

FlexJavaScript互動呼叫函式

一、在JavaScript中呼叫Flex方法  在 Flex 應用中,需要在方法列表中新增指定的公用方法,這樣Flex中的方法才能被JS呼叫到。在Flex中需要通過呼叫addCallback()可以把一個方 法新增到此列表中。 addCallback將一個ActionScr

FlexJavaScript互動中如何用Flex呼叫JavaScript

本文和大家重點討論一下Flex與JavaScript的互動:Flex呼叫JavaScript或者被JavaScript呼叫,在Flex中呼叫JavaScript最簡單的方法是使用ExternalInterface(),可以使用此API呼叫任意JavaScript,傳遞引數,獲

VCJavaScript互動(二) ———— 呼叫JS函式

這一章,我們來動手實踐VC呼叫JS函式。 我們動手寫一個HTML,其中包含這樣一段JS程式碼: <script type="text/javascript"> function Add(value1, value2) { return

VCJavaScript互動(三) ———— JS呼叫C++

太監的原因:     時隔兩年,VC與JavaScript互動系列的最後一篇關於JavaScript如何呼叫c++的文章終於出爐了。為什麼會隔了那麼久?因為本來打算太監的,可是看到熱情的網友們的眼神,從期望變成了失望,在我的心裡激起了層層波瀾。兩年後的今天,還是堅持

Android:WebViewJavascript互動(相互呼叫引數、傳值)

Android中可以使用WebView載入網頁,同時Android端的java程式碼可以與網頁上的javascript程式碼之間相互呼叫。 效果圖: (一)Android部分: 佈局程式碼: <LinearLayout xmlns:android="http://s

flexhtml互動和js呼叫

一、在JavaScript中呼叫Flex方法 在 Flex 應用中,需要在方法列表中新增指定的公用方法,這樣Flex中的方法才能被JS呼叫到。在Flex中需要通過呼叫addCallback()可以把一個方 法新增到此列表中。 addCallback將一個ActionScript的方法註冊為一個JavaS

JavaScript呼叫函式的外層()的問題

在自呼叫函式中,我們經常看到諸如 (function () {})()  或者 (function(){}())  的寫法,那外層的這個圓括號()是否可以去掉呢?答案是不可以的。 1. 命名函式的定義和呼叫: // 函式宣告 function te

在 Cef 中實現 C++ JavaScript 互動場景分析

此文已由作者鄧佳佳授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗 本文主要介紹 CEF 場景中 C++ 和 JavaScript 互動(以下簡稱 JS Bridge)中的一些重要節點,包括了 C++/JavaScript 的方法註冊、方法呼叫、回撥管理。以下是一些

WKWebviewJavaScript 互動(二)監聽遠端網頁點選事件

引言 監聽網頁的按鈕的點選事件,並且網頁不是我們招呼一聲對方就能改的。那麼繼續。 正文 1.WKUserScript 先介紹WebKit框架一個類WKUserScript: 核心方法,傳入JS程式碼字串,返回給我們一個WKUserScr

VCJavaScript互動(四) ———— WebBrowser或CHtmlView中輕鬆遮蔽指令碼錯誤(JavaScript)

1.什麼是javascript指令碼錯誤 1.1    概述 JavaScript指令碼錯誤包含“執行時錯誤”和“語法錯誤”。 1.2    JavaScript“語法錯誤” JavaScript語法錯誤是指當 JavaScript語句違反了 JavaScript指令碼語言

PHPJavascript互動

Javascript簡介:JavaScript是一種基於物件和事件驅動的指令碼語言。Javascript語言與靜態html標籤結合使用,可以再靜態的HTML頁面上實現與使用者的互動性操作。 Javascript優點:能夠有效地節省客戶端與伺服器的互動時間,大大節省伺服器資源。即JavaS

C#通過webbrowser控制元件javascript互動

1.C#裡呼叫控制元件裡面網頁的js函式     //呼叫JavaScript的messageBox方法,並傳入引數     object[] objects = new object[1];     objects[0] = “C#訪問JavaScript指令碼";  

VC++ CHtmlViewJavascript互動

轉載自:‍http://blog.sina.com.cn/s/blog_3fa68f2d01000bm5.html‍如何在CHtmlView中實現與HTML頁面使用window.external對像進行互動。1、在類定義時新增DECLARE_DISPATCH_MAP()如:

FlexJS相互呼叫

(1):在Flex中有這麼一個類:ExternalInterface.在這個類中它給我們:call和addCallback Flex中As呼叫Js的方法是:      1、匯入包 (import flash.external.ExternalInterface;)  

UIWebViewjavascript互動二通過頁面的響應事件獲取頁面輸入框內的值

接上篇文章,上篇文章實現了UIwebview對html檔案的載入和對js事件的響應,但是對html頁面上輸入的值沒有獲取。 今天就來說說這個首先要用到工具類WebViewJavascriptBridge 下載地址 然後將工具類匯入到專案中。 其中te

WebView使用JavaScript互動詳解(附完整Demo程式碼)

最近專案中需要用到與HTML5互動,也就是WebView的使用,與JS的互動肯定必不可少.開始寫專案之前寫了個測試Demo,成功完成了Java與JS的相互呼叫.先看效果圖 下面上完整程式碼: 首先在Module下的assets目錄下有兩個本地的.

FlexJavaScript 互動(帶參)

flash檔案與面頁互動: Flex檔案: Flex程式碼  <?xml version="1.0" encoding="utf-8"?>      <mx:Application xmlns:mx="http://www.adobe.c

flexjs互動淺析

呼叫方法例如:ExternalInterface.call("UploadComplete",oldName,uidName,_dir+"/"+uidName+type); 第一個是js方法名,後面幾個是給這個js方法傳的引數。這個方法必須在網頁的js中註冊,否則會呼叫失敗。 需要注意的是呼叫之前需要檢查網

pyqt-webkitjavascript互動的問題

Qtwebkit中關於void QWebFrame::addToJavaScriptWindowObject的描述如下: void QWebFrame::addToJavaScriptWindowObject ( const QString & name, QOb

OBJECTARX開發 使用者互動-- 輸入函式彙總

static void TESTinputcmd(){ CString outStr; //acedGetReal /*ads_real realNum; acedGetReal(_T("輸入一個實數"),&realNum); outStr.Format(_T("%lf"),realNum); ac