日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

JavaScript和Flash的通信

 加菲 2005-08-04
JavaScript和Flash的通信


 說明: 略作修改,主要是一些很初級的操作; 又很多相似的文章,不過這個很權(quán)威

  下面是一些在Flash和使用javascript的HTML文件直接通信的示例,每個示例都有簡略的步驟

  本文討論了3種基本的Flash/javascript通信方式:
  > javascript 到 Flash的通信----使用Flash播放器的javascript方法
  > Flash 到 javascript的通信----使用Flash的fscommand
  > Flash 到 Flash的通信-----------使用本地連接對象或綜合上2種技術(shù)

  并不是所有的瀏覽器都很重視腳本.為了和Flash播放器通信,瀏覽器必須有內(nèi)置的鉤子以便Flash播放器可以‘監(jiān)聽‘.瀏覽器必須是下列的幾種:
  > Netscape Navigator 3.0-4.7x, 和 Netscape 6.2或更高
  (Windows 95/98/NT/2000/XP 或 MacOS; 允許Java和LiveConnect)
  >Internet Explorer 3.0 或更高
  (僅Windows 95/98/NT/2000/XP; 允許ActiveX)

  注意:Macintosh上的Internet Explorer和早期版本的Netscape6不支持這種方法.請查看本文的附加信息


  javascript到Flash的通信
  這個例子演示了如何使用Flash的method把變量從HTML的input text 發(fā)送到該頁面中的Flash文件中.HTML input的數(shù)據(jù)通過Flash的SetVariable方法傳送到Flash文件中.

  查看示例:示例 下載源文件(17k)

  步驟:
  >Flash中
  1.新建一個文件,保存為javascript_to_flash.fla
  2.用文字工具在舞臺上創(chuàng)建一個文本域
  3.選擇這個文本域,在屬性面板中,從下拉列表中選擇動態(tài)文本(Dynamic Text),在變量(variable)欄填上"myVar"
  注意:最好的習慣是使用Instance,用myVar.text更改myVar的值.為了簡單起見和兼容Flash4和Flash5,我們使用的是變量名的形式.
  4.保存文件
  5.發(fā)布HTML文件和SWF文件


  >Dreamweaver中
  下一步的工作轉(zhuǎn)移到Dreamweaver中了,當然也可以是其他的HTML編輯器
  1.打開上一步發(fā)布的HTML文件
  2.插入生成的SWF文件和OBJECT/EMBED標簽
  (1) Insert>Media>Flash,并選擇這個Flash
  (2) 切換到代碼視圖,我們需要修改被選中的<OBJECT>和<EMBED>標簽
  (3) 在OBJECT標簽中,插入id="myFlash"
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"codebase="http://download.macromedia.com
/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
width=366 height=142 id="myFlash">

注意:如果你是粘貼復制代碼的話,確保刪除不必要的換行.否則可能會引起錯誤; id也可以在屬性面板里直接輸入
  (4) 在EMBED標簽中,插入name="myFlash"和swLiveConnect="true",確保沒有使用id屬性!代碼應當是這樣子的:
  <embed src="javascript_to_flash.swf" quality=high width=366 height=142
type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com
/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash";
name="myFlash" swLiveConnect="true"> </embed>

  3.創(chuàng)建表單域
  (1) 回到設計視圖
  (2) 插入文本域(Insert> Form Object> Text Field),如果詢問是否添加表單域,選擇是
  (3) 把文本域的HTML標簽修改成這樣:
  <input type="text" name="sendText" maxlength="45" onChange="doPassVar(this)">

  每當文本域內(nèi)容發(fā)生變化時,onChange就被觸發(fā),doPassVar()函數(shù)就被調(diào)用

  4.創(chuàng)建傳遞變量值的javascript函數(shù)
  復制下面的javascript到<head></head>標簽內(nèi)
<SCRIPT LANGUAGE=javascript>
<!--
function doPassVar(args){
   var sendText = args.value;
   window.document.myFlash.SetVariable("myVar", sendText);}
//-->
</SCRIPT>

  5.保存文件,測試一下(F12)

  Flash到javascript的通信
  從HTML可以發(fā)送數(shù)據(jù)到Flash,反過來也可以. 這個例子演示了如何應用Flash的Fscommand來發(fā)送數(shù)據(jù)到javascript.
  查看示例:示例2 下載源文件: flash_to_javascript.zip(10K)

  簡要步驟:
  >Flash中
  新建一個文件,保存為flash_to_javascript.fla
  創(chuàng)建一個文本域,設置成輸入文本(Input Text),選擇"border"以便我們能看到他,指定他的變量為inputVar
  創(chuàng)建一個按鈕,在按鈕上添加如下的as:
on (release) {  fscommand ("send_var", inputVar);}

  保存文件,導出HTML和SWF

  >Dreamweaver中
  1.打開導出HTML文件,修改<OBJECT>和<EMBED>標簽,結(jié)果同上:
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"codebase="http://download.macromedia.com
/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width=366
 height=142 id="myFlash"> <embed src="javascript_to_flash.swf" quality=high
width=366 height=142 type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com
/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash";
name="myFlash" swLiveConnect="true"> </embed>

2. 插入如下的javascript到<Body>標簽內(nèi):

<SCRIPT LANGUAGE=javascript>
<!--
var InternetExplorer= navigator.appName.indexOf("Microsoft") != -1;
function myFlash_DoFSCommand(command, args)

var myFlashObj = InternetExplorer ? myFlash : document.myFlash;  alert (args);
}
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 &&   navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1)

document.write(‘<SCRIPT LANGUAGE=VBScript\> \n‘); 
document.write(‘on error resume next \n‘); 
document.write(‘Sub myFlash_FSCommand(ByVal command, ByVal args)\n‘); 
document.write(‘ call myFlash_DoFSCommand(command, args)\n‘); 
document.write(‘end sub\n‘);  document.write(‘</SCRIPT\> \n‘);
}
//-->
</SCRIPT>

  3.保存,預覽

  Flash和Flash的通信

  通過上面兩種方法的混和使用,同一HTML中兩個或者更多的Flash直接可以相互傳送消息. 從一個flash使用fscommand傳送消息給javascript,使用Flash的javascript methods把消息傳給另外一個flash

  詳細的看這里:Flash影片之間的通信示例
  http://www.macromedia.com/support/flash/ts/document./flash_to_flash_comm.htm

 

  從Flash MX開始,local connection對象可以用來在flash之間傳送消息. 這使得同一HTML中的或者位于兩個瀏覽器窗口中的兩個flash影片可以相互發(fā)送消息,而不必使用javascript或者fscommand
詳細的看這里:在Flash MX中使用local connection對象

  附可控制Flash Player的javascript方法:

  一覽表:

Play() -------------------------------------------------------- 播放動畫
StopPlay()--------------------------------------------------- 停止動畫
IsPlaying()--------------------------------------------------- 動畫是否正在播放
GotoFrame(frame_number)---------------------------- 跳轉(zhuǎn)到某幀
TotalFrames()---------------------------------------------- 獲取動畫總幀數(shù)
CurrentFrame()-------------------------------------------- 回傳當前動畫所在幀數(shù)-1
Rewind()---------------------------------------------------- 使動畫返回第一幀
SetZoomRect(left,top,right,buttom)--------------- 放大指定區(qū)域
Zoom(percent)-------------------------------------------- 改變動畫大小
Pan(x_position,y_position,unit)----------------------- 使動畫在x,y方向上平移
PercentLoaded()------------------------------------------ 返回動畫被載入的百分比
LoadMovie(level_number,path)----------------------- 加載動畫
TGotoFrame(movie_clip,frame_number)----------- movie_clip跳轉(zhuǎn)到指定幀數(shù)
TGotoLabel(movie_clip,label_name)----------------- movie_clip跳轉(zhuǎn)到指定標簽
TCurrentFrame(movie_clip)----------------------------- 回傳movie_clip當前幀-1
TCurrentLabel(movie_clip)------------------------------ 回傳movie_clip當前標簽
TPlay(movie_clip)------------------------------------------ 播放movie_clip
TStopPlay(movie_clip)----------------------------------- 停止movie_clip的播放
GetVariable(variable_name)---------------------------- 獲取變量
SetVariable(variable_name,value)--------------------- 變量賦值
TCallFrame(movie_clip,frame_number)-------------- call指定幀上的action
TCallLabel(movie_clip,label)----------------------------- call指定標簽上的action
TGetProperty(movie_clip,property)------------------ 獲取movie_clip的指定屬性
TSetProperty(movie_clip,property,number)------- 設置movie_clip的指定屬性

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多