導航:首頁 > 編程語言 > flash調用js彈窗

flash調用js彈窗

發布時間:2024-03-01 01:46:18

㈠ 請問Flash怎麼調用所插入頁面的js函數呢getURL("javascript:test()","_self");這個方法是不是不行

是的。如果本地有iis測試環境也可以。

可能我沒說清楚,再詳細說下,就你上面貼的代碼,回是能用的。答將此swf插入網頁,同時網頁中加入了js腳本,調用就能成功。但你在本地打開瀏覽器隨便就能讓它執行是成功不了的。要上傳到伺服器才可以。

我說的意思就是,如果你想在本地測試調用成功,需要有伺服器環境,比如我裝了iis就能實現,此時瀏覽器地址欄輸入的是本地伺服器地址:

㈡ flash調用js的函數

通過ExternalInterface調用js函數

語法:

ExternalInterface類的call方法

ExternalInterface.call(functionName:String,...arguments):*

//第一個參數是js的函數名,後面的是js函數的內參數

舉例:

1、容js函數

functionhello(h){
alert(h);
}

2、flash調用

ExternalInterface.call(hello,"nihao")調用後會彈出nihao

㈢ js與as怎麼相互調用,as裡面可以直接彈出一個對話框或者跳轉到一個新的頁面嗎

AS調用JS函數:
ExternalInterface.call(JS中的函數名,參數一,參數二);//調用JS中的一個函數
以下AS代碼回:
import flash.external.ExternalInterface;
例子:ExternalInterface.call('alert',『hello world!』答);//會彈出JS的提示框

JS調用AS函數:
ExternalInterface.addCallback(提供給JS調用的名稱,調用的函數); //提供一個函數給JS調用

以下AS代碼:
import flash.external.ExternalInterface;
import mx.controls.Alert;
public function asFunc(a:int,b:int):int
{
Alert.show(a+b);
}
ExternalInterface.addCallback("add",asFunc);

以下JS代碼:
add(1,2);//調用的其實是AS中的asFunc方法 ,會在Flash中彈出提示框

㈣ flash 調用外部JS函數

cs3裡面的實現方法:
實現這個功能需要用到as里的externalinterface類
可以在as文檔里找到
獲取有關外部容器的信息

ExternalInterface.available 屬性指示當前的 Flash Player 是否位於提供外部介面的容器中。如果外部介面可用,則此屬性為 true;否則,為 false。在使用 ExternalInterface 類中的任何其它功能之前,應始終進行檢查以確保當前容器支持外部介面通信,如下所示:

if (ExternalInterface.available)
{
// 在此執行 ExternalInterface 方法調用。
}

注意

ExternalInterface.available 屬性報告當前容器是否為支持 ExternalInterface 連接的容器類型。它不會報告當前瀏覽器中是否啟用了 JavaScript。

通過使用 ExternalInterface.objectID 屬性,您可以確定 Flash Player 實例的唯一標識符(具體來說,是指 Internet Explorer 中 object 標簽的 id 屬性,或者是指使用 NPRuntime 介面的瀏覽器中 embed 標簽的 name 屬性)。這個唯一的 ID 代表瀏覽器中的當前 SWF 文檔,並可用於對 SWF 文檔進行引用,例如:在容器 HTML 頁中調用 JavaScript 函數時進行引用。當 Flash Player 容器不是 Web 瀏覽器時,此屬性為 null。

從 ActionScript 中調用外部代碼

ExternalInterface.call() 方法執行容器應用程序中的代碼。它至少需要一個參數,即包含容器應用程序中要調用函數的名稱的字元串。傳遞給 ExternalInterface.call() 方法的其它任何參數均作為函數調用的參數傳遞給容器。

// 調用外部函數"addNumbers"
// 傳遞兩個參數並將該函數的結果
// 賦給變數"result"
var param1:uint = 3;
var param2:uint = 7;
var result:uint = ExternalInterface.call("addNumbers", param1, param2);

如果容器為 HTML 頁,此方法將調用具有指定名稱的 JavaScript 函數,必須在包含 HTML 頁中的 script 元素中定義該函數。JavaScript 函數的返回值被傳遞回 ActionScript。

// 加上兩個數字,然後將結果發送回 ActionScript
function addNumbers(num1, num2)
{
return (num1 + num2);
}

如果容器為其它的 ActiveX 容器,此方法將導致 Flash Player ActiveX 控制項調度它的 FlashCall 事件。Flash Player 將指定的函數名及所有參數序列化為一個 XML 字元串。容器可以在事件對象的 request 屬性中訪問該信息,並用它來確定如何執行它自己的代碼。為了將值返回 ActionScript,容器代碼調用 ActiveX 對象的 SetReturnValue() 方法,並將結果(序列化為一個 XML 字元串)作為該方法的參數進行傳遞。有關該通信使用的 XML 格式的詳細信息,請參閱外部 API 的 XML 格式。

無論容器為 Web 瀏覽器還是為其它 ActiveX 容器,只要調用失敗或容器方法沒有指定返回值,都將返回 null。如果包含環境屬於調用代碼無權訪問的安全沙箱,ExternalInterface.call() 方法將引發 SecurityError 異常。可以通過在包含環境中為 allowScriptAccess 設置合適的值來解決此問題。例如,要在 HTML 頁中更改 allowScriptAccess 的值,請編輯 object 和 embed 標簽中的相應屬性。

從容器中調用 ActionScript 代碼

容器只能調用函數中的 ActionScript 代碼,而不能調用任何其它 ActionScript 代碼。要從容器應用程序調用 ActionScript 函數,必須執行兩項操作:向 ExternalInterface 類注冊函數,然後從容器的代碼調用它。

首先,必須注冊 ActionScript 函數,指示其應能夠為容器所用。使用 ExternalInterface.addCallback() 方法,如下所示:

function callMe(name:String):String
{
return "busy signal";
}
ExternalInterface.addCallback("myFunction", callMe);

addCallback() 方法採用兩個參數。第一個參數為 String 類型的函數名,容器將籍此名稱得知要調用的函數。第二個參數為容器調用定義的函數名時要執行的實際 ActionScript 函數。由於這些名稱是截然不同的,因此可以指定將由容器使用的函數名,即使實際的 ActionScript 函數具有不同的名稱。這在函數名未知的情況下特別有用,例如:指定了匿名函數或需要在運行時確定要調用的函數。

一旦向 ExternalInterface 類注冊了 ActionScript 函數,容器就可以實際調用該函數。完成該操作的具體方法依容器的類型而定。例如,在 Web 瀏覽器的 JavaScript 代碼中,使用已注冊的函數名調用 ActionScript 函數,就像它是 Flash Player 瀏覽器對象的方法(即,一個表示 object 或 embed 標簽的 JavaScript 對象的方法)。也就是說,將傳遞參數並返回結果,就如同調用本地函數一樣。

// callResult gets the value "busy signal"
var callResult = flashObject.myFunction("my name");

或者,在運行於台式機應用程序中的 SWF 文件中調用 ActionScript 函數時,必須將已注冊的函數名及所有參數序列化為一個 XML 格式的字元串。然後,將該 XML 字元串作為一個參數來調用 ActiveX 控制項的 CallFunction() 方法,以實際執行該調用。有關該通信使用的 XML 格式的詳細信息,請參閱外部 API 的 XML 格式。

不管是哪種情況,ActionScript 函數的返回值都被傳遞回容器代碼,當調用方為瀏覽器中的 JavaScript 代碼時直接作為值返回,而當調用方為 ActiveX 容器時則會序列化為 XML 格式字元串。

閱讀全文

與flash調用js彈窗相關的資料

熱點內容
有哪些有助於考公的app 瀏覽:237
四字qq網名 瀏覽:666
dcm格式文件能發給醫聖嗎 瀏覽:998
ps文件大卡頓是顯卡問題嗎 瀏覽:616
win7可以用win10易升嗎 瀏覽:56
企業qq營銷qq區別 瀏覽:322
parallels10安裝win10 瀏覽:410
程序員看什麼書 瀏覽:481
聊城織夢網站怎麼加登錄頁面 瀏覽:547
北京宏岸圖升網路技術有限公司上海分公司 瀏覽:825
手機中無用的文件夾有哪些 瀏覽:535
品管文件名 瀏覽:940
蘋果用一個id通話記錄 瀏覽:417
文件名前綴 瀏覽:998
w10網路撥號651錯誤代碼 瀏覽:801
大數據進階書籍 瀏覽:948
家裡兩台電腦怎麼傳文件 瀏覽:305
網路機頂盒怎麼接電腦 瀏覽:951
文件管理文件夾 瀏覽:891
iphone怎麼存文件 瀏覽:201

友情鏈接