Flash與網頁交互效果圖
Flash有強大的繪圖功能、圖形功能,能夠與網頁的參數傳遞聯繫起來,配合後端的服務器語言,能夠收到很大效果。不過這樣編程比較麻煩,要調試Flash,然後要放到服務器上調試。
一、Flash部分
1、首先,新建一個ActionScript3.0的Flash,新建之後就保存為webPage.fla,這次的Flash無須這麼大的尺寸,否則網頁中會有很多的留白,設置大小為500x100px就可以了。
2、通過窗口->組件,或者Ctrl+F7打開組件面板,利用自帶的按鈕、標籤文本、輸入框組件佈置界面。
3、拖出如下的界面,設置各個組件的屬性如下,設置其text值,也就是要顯示的文字,為部分要控制的組件設置實例名稱,也就是Id,比如按鈕設置成Button1,輸入框設置成EditField1,一會兒要給網頁JavaScript控制的標籤文本的text值清空,其實例名稱為Label1。
4、之後點擊第一幀,打開動作面板,或者點擊F9,寫入如下的代碼:
import flash.external.ExternalInterface;
flash.system.Security.allowDomain("*");
flash.system.Security.allowInsecureDomain("*");//設置允許所有網站都允許Flash與網頁之間交互
Button1.addEventListener("click",function(){//點擊Button1這個按鈕
ExternalInterface.call("show",EditField1.text);
//則調用JavaScript中的function show(message){}函數,其中message這個參數值,由EditField1輸入的東西填充
});
function JavaScriptShow1(message1){
//定義一個函數,一旦這個函數觸發則把傳來的值,填充Label1這個標籤文本
Label1.text=message1;
}
ExternalInterface.addCallback("JavaScriptShow1",JavaScriptShow1);
//註冊JavaScriptShow1這個函數,其對外名稱為JavaScriptShow1,一般都應該相同的
//網頁調用Flash對象的JavaScriptShow1的方法,則相當於調用ActionScript中的JavaScriptShow1(message1){}函數
5、此時Flash的部分完畢,選擇文件->發佈,打開Flash保存的文件夾,你會發現生成了swf文件。。
二、網頁的部分
1、之後,要把這個Flash佈置到網頁上。Flash發佈之後,會在網頁中生成兩個東西一個html與一個swf,核心文件是.swf文件,html文件不能照搬的,只能借鑑其中的代碼,否則不能兼容火狐、谷歌等瀏覽器。
這個由Flash生成webPage.html頁面,可以借鑑的代碼如下:
2、由於Flash禁用了Flash調用本地文件的功能。你只能把這個webPage.swf拷貝到你的服務器上調試。之後在服務器上新建一個.html的頁面,這裏以swf.html與webPage.swf同目錄做例子,如果不同例子請自己設置好絕對路徑,假設是swf.html,swf.html的HTML佈局如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&...; lang="zh-CN" xml:lang="zh-CN">
<head>
<title>webPage</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
Flash與網頁交互
<input type="text" id="text1" />
<button onclick="toFlash()">發信息給Flash!</button>
<!--這段代碼的部分可以在發佈出來的html中截取-->
<div>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="100" id="webPage" align="middle"><!--這裏的id是為了flash給IE系列瀏覽器控制-->
<!--對IE有效的代碼-->
<param name="movie" value="webPage.swf" /><!--為IE瀏覽器指明flash的路徑-->
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="always" /><!--這裏一定要設置成always,打開Javascript與Actionscript的交互權限-->
<!--對野狐禪、谷歌等有效的代碼-->
<embed src="webPage.swf" width="500" height="100" id="webPage"></embed><!--這裏的id是為了flash給野狐禪、谷歌等瀏覽器控制,src的值為野狐禪、谷歌等瀏覽器指明flash的路徑-->
</object>
</div>
</body>
</html>
之後的JavaScript佈局,是ActionScript與JavaScript交互的核心,代碼如下:
<script type="text/javascript">
//給ActionScript所調用的JavaScript函數,message這個參數被ActionScript傳遞過來的值所填充
function show(message){
alert(message);
}
//獲取Flash對象的函數,不同的對象有不同的方法。為了兼容,只能這樣寫。
function getFlash(movieName){
if (window.document[movieName]) {
window.document[movieName];
}
if (navigator.appName.indexOf("Microsoft Internet") == -1) {
if (document.embeds && document.embeds[movieName])
return document.embeds[movieName];
}
else {
return document.getElementById(movieName);
}
}
//獲取Flash對象
var flash1 = getFlash('webPage');
//JavaScript調用ActionScript中註冊為JavaScriptShow1的函數
function toFlash(){
var text1 = document.getElementById("text1").value;
flash1.JavaScriptShow1(text1);
}
</script>
三、總結
綜上所述,webPage.swf與swf.html的交互如下圖:
作者:yongh701
來源:CSDN
原文:https://blog.csdn.net/yongh70...
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!