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>
相關推薦
Flex與JavaScript互動呼叫函式
一、在JavaScript中呼叫Flex方法 在 Flex 應用中,需要在方法列表中新增指定的公用方法,這樣Flex中的方法才能被JS呼叫到。在Flex中需要通過呼叫addCallback()可以把一個方 法新增到此列表中。 addCallback將一個ActionScr
Flex與JavaScript互動中如何用Flex呼叫JavaScript
本文和大家重點討論一下Flex與JavaScript的互動:Flex呼叫JavaScript或者被JavaScript呼叫,在Flex中呼叫JavaScript最簡單的方法是使用ExternalInterface(),可以使用此API呼叫任意JavaScript,傳遞引數,獲
VC與JavaScript互動(二) ———— 呼叫JS函式
這一章,我們來動手實踐VC呼叫JS函式。 我們動手寫一個HTML,其中包含這樣一段JS程式碼: <script type="text/javascript"> function Add(value1, value2) { return
VC與JavaScript互動(三) ———— JS呼叫C++
太監的原因: 時隔兩年,VC與JavaScript互動系列的最後一篇關於JavaScript如何呼叫c++的文章終於出爐了。為什麼會隔了那麼久?因為本來打算太監的,可是看到熱情的網友們的眼神,從期望變成了失望,在我的心裡激起了層層波瀾。兩年後的今天,還是堅持
Android:WebView與Javascript互動(相互呼叫引數、傳值)
Android中可以使用WebView載入網頁,同時Android端的java程式碼可以與網頁上的javascript程式碼之間相互呼叫。 效果圖: (一)Android部分: 佈局程式碼: <LinearLayout xmlns:android="http://s
flex與html互動和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 的方法註冊、方法呼叫、回撥管理。以下是一些
WKWebview與JavaScript 互動(二)監聽遠端網頁點選事件
引言 監聽網頁的按鈕的點選事件,並且網頁不是我們招呼一聲對方就能改的。那麼繼續。 正文 1.WKUserScript 先介紹WebKit框架一個類WKUserScript: 核心方法,傳入JS程式碼字串,返回給我們一個WKUserScr
VC與JavaScript互動(四) ———— WebBrowser或CHtmlView中輕鬆遮蔽指令碼錯誤(JavaScript)
1.什麼是javascript指令碼錯誤 1.1 概述 JavaScript指令碼錯誤包含“執行時錯誤”和“語法錯誤”。 1.2 JavaScript“語法錯誤” JavaScript語法錯誤是指當 JavaScript語句違反了 JavaScript指令碼語言
PHP與Javascript互動
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++ CHtmlView與Javascript互動
轉載自:http://blog.sina.com.cn/s/blog_3fa68f2d01000bm5.html如何在CHtmlView中實現與HTML頁面使用window.external對像進行互動。1、在類定義時新增DECLARE_DISPATCH_MAP()如:
Flex與JS相互呼叫
(1):在Flex中有這麼一個類:ExternalInterface.在這個類中它給我們:call和addCallback Flex中As呼叫Js的方法是: 1、匯入包 (import flash.external.ExternalInterface;)
UIWebView與javascript互動二通過頁面的響應事件獲取頁面輸入框內的值
接上篇文章,上篇文章實現了UIwebview對html檔案的載入和對js事件的響應,但是對html頁面上輸入的值沒有獲取。 今天就來說說這個首先要用到工具類WebViewJavascriptBridge 下載地址 然後將工具類匯入到專案中。 其中te
WebView使用與JavaScript互動詳解(附完整Demo程式碼)
最近專案中需要用到與HTML5互動,也就是WebView的使用,與JS的互動肯定必不可少.開始寫專案之前寫了個測試Demo,成功完成了Java與JS的相互呼叫.先看效果圖 下面上完整程式碼: 首先在Module下的assets目錄下有兩個本地的.
Flex 和JavaScript 互動(帶參)
flash檔案與面頁互動: Flex檔案: Flex程式碼 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.c
flex與js互動淺析
呼叫方法例如:ExternalInterface.call("UploadComplete",oldName,uidName,_dir+"/"+uidName+type); 第一個是js方法名,後面幾個是給這個js方法傳的引數。這個方法必須在網頁的js中註冊,否則會呼叫失敗。 需要注意的是呼叫之前需要檢查網
pyqt-webkit與javascript互動的問題
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