在過去的一年里,對(duì)于開發(fā)人員來說使用flash與javascript通訊總會(huì)碰到一些麻煩的事情,從flash調(diào)用javascript函數(shù)已經(jīng)沒有什么問題了,因?yàn)槲覀兛梢允褂胓etURL方法來直接調(diào)用,但是要想使用javascript返回flash在許多瀏覽器上幾乎是不可能的。但是現(xiàn)在可以了。 Flash8的出現(xiàn),這件事就變的比較容易了。
The ExternalInterface API
之前我們使用flash調(diào)用javascript函數(shù),一般使用這樣的方法:
代碼:
getURL(“javascript:alert(‘hello webstudio.com.cn’);”);
但是使用這種方法從flash調(diào)用javascript函數(shù)仍存在許多困難。特別是在處理多個(gè)javascript函數(shù)調(diào)用問題上。ExternalInterface API可以與javascript實(shí)現(xiàn)無縫調(diào)用,并且它的能力達(dá)到可以在flash時(shí)間線使用。
在我們正式進(jìn)入它的使用方法之前,我們需要確保在flash時(shí)間上可用,就要導(dǎo)入它的類向這樣:
代碼:
import flash.external.*;
現(xiàn)在它已經(jīng)允許我們做的第一件事就是可以調(diào)用javascript函數(shù)了。
Call 調(diào)用方法
call方法對(duì)于ExternalInterface對(duì)象來說是一個(gè)靜態(tài)方法,也就是說我們不需要使用ExternalInterface對(duì)象的實(shí)例來調(diào)用方法,我們可以直接通過對(duì)象類來調(diào)用,向這樣:
代碼:
ExternalInterface.call(functionName:String,Parameters);
這個(gè)方法有兩個(gè)參數(shù): · functionName – 你想要調(diào)用的javascript函數(shù)名要以字符串的形式 · Parameters – 需要傳遞給javascript函數(shù)的參數(shù),用逗號(hào)分開,是可選的。 這些是基本的內(nèi)容,現(xiàn)在讓我們來看一個(gè)例子: 1. 創(chuàng)建一個(gè)flash文檔命名為external1.fla. 2. 創(chuàng)建兩個(gè)層上面的層命為AS,下面的層命名為”內(nèi)容” 3. 在內(nèi)容層里面,創(chuàng)建一個(gè)文本域,將它設(shè)置為輸入文本域,打開顯示邊框以方便你能看到,并給它取個(gè)名字為alert_txt,將它放在場(chǎng)景的左邊。 4. 仍然在內(nèi)容這一層上,拖動(dòng)一個(gè)按鈕組件于場(chǎng)景中并把它放在動(dòng)態(tài)文本的右邊,設(shè)置它的label為”Alert”并給它起個(gè)名字為alert_butn. 5. 選擇上方的as層在第一幀上輸入代碼, 6. //調(diào)用alert 7.
代碼:
import flash.external.*; alert_butn.clickHandler = function() { ExternalInterface.call("alert", alert_txt.text); }
前面部分的代碼是導(dǎo)入ExternalInterface類包。然后為按鈕組件設(shè)置事件,當(dāng)點(diǎn)擊時(shí)調(diào)用javascript函數(shù),并將文本中輸入的文本通過externalInterface傳遞給javascript函數(shù)。 現(xiàn)在發(fā)布你的影片,將它和html放在服務(wù)器上,當(dāng)你在服務(wù)器上測(cè)試時(shí)不論你在文本中輸入什么信息,它都將顯示在alert對(duì)話框中,但是如果你在本地測(cè)試,你可能就會(huì)發(fā)現(xiàn)當(dāng)你點(diǎn)擊按鈕時(shí),什么也沒發(fā)生,這是由flashplayer的安全特性造成的。
演示文件
上面這個(gè)范例是一個(gè)方法的例子,使用getURL方法也可以做到,然而externalinterface不只是能做到這些,除了發(fā)送信息給javascript,它還可以通過addCallback方法接收從javascript返回的信息。
出處:WebStudio
責(zé)任編輯:moby
上一頁(yè) 下一頁(yè) flash8與javascript集成 [2]
◎進(jìn)入論壇Flash專欄版塊參加討論
|