Flex與JavaScript的交互:調用JavaScipt或者被JavaScript調用

一、在JavaScript中調用Flex方法

在Flex中可以用ExternalInterface來調用Flex的方法,途徑是

1.通過在Flex應用可調用方法列表中添加指定的公用方法。在Flex應用中通過調用addCallback()可以把一個方法添加到此列表中。addCallback將一個ActionScript的方法注冊爲一個JavaScript和VBScript可以調用的方法。

addCallback()函數的定義如下:

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

function_name參數就是在Html頁面中腳本調用的方法名。closure參數是要調用的本地方法,這個參數可以是一個方法也可以是對象實例。

舉個例子:

<mx:Script>

import flash.external.*;

public function myFunc():Number {

return 42;

}

public function initApp():void {

ExternalInterface.addCallback("myFlexFunction",myFunc);

}

</mx:Script>

2.那麽在Html頁面中,先獲得SWF對象的引用,也就是用<object .../>聲明的Swf的Id屬性,比如說是MyFlexApp。然後就可以用以下方式調用Flex中的方法。

<SCRIPT language='JavaScript' charset='utf-8'>

function callApp() {

var x = MyFlexApp.myFlexFunction();

alert(x);

}

</SCRIPT>

<button onclick="callApp()">Call App</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函數

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>

Flash在JavaScript應用程序的交互
  最近在Google Reader裏面看到的,一日本人在blog上提出來的,他還有一個示例頁面,這裏是Demo下載地址。不過在看到這篇文章之前,我就已經在我們的項目(PPLive iKan 1.0)中用過了,其中的觀看曆史記錄就是使用...查看完整版>>Flash在JavaScript應用程序的交互
 
c#和javascript交互
在asp.net開發中,經常會用到後台和前台的交互,就此總結了一點c#和javascript相互操作的方法1.在後台c#代碼中調用jacascript的方法javascript代碼:<script type="text/javascript" language="javascript">fu...查看完整版>>c#和javascript交互
 
用JavaScript實現更複雜的交互
     一、什麽是框架  框架Frames最主要功用是"分割"視窗,使每個"小視窗"能顯示不同的HTM L文件,不同框架之間可以互動(interact),這就是說不同框架之間可以交換訊息與資料。例如:假設您...查看完整版>>用JavaScript實現更複雜的交互
 
JavaScript實際應用:子窗口和父窗口交互
  最近項目開發中需要子窗口和父窗口交互的內容,基本上無非就是把子窗口的信息傳遞給父窗口,並且關閉自己等等,或者是父窗口把自己的信息傳遞給子窗口等等。  1。父窗口傳遞信息給子窗口  看代碼實例:   ...查看完整版>>JavaScript實際應用:子窗口和父窗口交互
 
JavaScript實際應用:子窗口和父窗口交互
JavaScript實際應用:子窗口和父窗口交互Author: heiyelurenDate: 2005-07-07Home: 最近項目開發中需要子窗口和父窗口交互的內容,基本上無非就是把子窗口的信息傳遞給父窗口,並且關閉自己等等,或者是父窗口把自己...查看完整版>>JavaScript實際應用:子窗口和父窗口交互
 
用javascript調用webservice(webservice behavior)
<script language="javascript"> function getfemale() { //第一個參數是webservice的url,後面是名稱 female.useService("news.asmx?WSDL","news"); //設置一個回調函數,service返回結...查看完整版>>用javascript調用webservice(webservice behavior)
 
解決IE打不開新窗口或者出現 JavaScript語法錯誤
regsvr32 shdocvw.dllregsvr32 oleaut32.dllregsvr32 actxprxy.dllregsvr32 mshtml.dllregsvr32 msjava.dllregsvr32 browseui.dllregsvr32 urlmon.dll 保存爲 .bat 文件 運行即可。...查看完整版>>解決IE打不開新窗口或者出現 JavaScript語法錯誤
 
下一代網絡交互浏覽語言一瞥flex/central mxml,.net/xaml,mozilla/xul
下一代網絡交互浏覽語言的特點:1, 豐富的用戶體驗。關鍵是交互性和多媒體,這一點是html做不到,不然就沒有flash了。2, 真正意義的客戶端。不需要安裝,但是在客戶端執行的並可以訪問本地資源。Html+javascript...查看完整版>>下一代網絡交互浏覽語言一瞥flex/central mxml,.net/xaml,mozilla/xul
 
flex 中 使用 JavaScript 寫 Cookie
/***寫Cookie* * name 保存到Cookie中的名稱* text 保存到Cookie中的實際值* savetime 保存到Cookie中的時間*/function writeCookie(name,text,savetime){ getUrl("javascript:function writeCookie(name, value, ho...查看完整版>>flex 中 使用 JavaScript 寫 Cookie
 
 
回到王朝網路移動版首頁