<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 16  文章 - 42  trackbacks - 0
    <2007年6月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    失業(yè)中…

    常用鏈接

    留言簿(7)

    隨筆檔案(16)

    技術(shù)Blog

    搜索

    •  

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

    下面是一些在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)


    Javascript到Flash的通信

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

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

    步驟:

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

    Dreamweaver中
    下一步的工作轉(zhuǎn)移到Dreamweaver中了,當(dāng)然也可以是其他的HTML編輯器
    1.打開上一步發(fā)布的HTML文件
    2.插入生成的SWF文件和OBJECT/EMBED標(biāo)簽
    (1) Insert>Media>Flash,并選擇這個Flash
    (2) 切換到代碼視圖,我們需要修改被選中的<OBJECT>和<EMBED>標(biāo)簽
    (3) 在OBJECT標(biāo)簽中,插入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">
    注意:如果你是粘貼復(fù)制代碼的話,確保刪除不必要的換行.否則可能會引起錯誤; id也可以在屬性面板里直接輸入
    (4) 在EMBED標(biāo)簽中,插入name="myFlash"和swLiveConnect="true",確保沒有使用id屬性!代碼應(yīng)當(dāng)是這樣子的:

    <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) 回到設(shè)計視圖
    (2) 插入文本域(Insert> Form Object> Text Field),如果詢問是否添加表單域,選擇是
    (3) 把文本域的HTML標(biāo)簽修改成這樣:

    <input type="text" name="sendText" maxlength="45" onChange="doPassVar(this)">
    每當(dāng)文本域內(nèi)容發(fā)生變化時,onChange就被觸發(fā),doPassVar()函數(shù)就被調(diào)用

    4.創(chuàng)建傳遞變量值的Javascript函數(shù)
    復(fù)制下面的Javascript到<head></head>標(biāo)簽內(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,反過來也可以. 這個例子演示了如何應(yīng)用Flash的Fscommand來發(fā)送數(shù)據(jù)到Javascript.

    查看示例:示例2
    下載源文件: flash_to_javascript.zip(10K)

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

    on (release) {
    fscommand ("send_var", inputVar);
    }
    保存文件,導(dǎo)出HTML和SWF

    Dreamweaver中
    1.打開導(dǎo)出HTML文件,修改<OBJECT>和<EMBED>標(biāo)簽,結(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>標(biāo)簽內(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>


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

    詳細(xì)的看這里:Flash影片之間的通信示例

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

    本站的localConnection教程:http://www.blueidea.com/tech/multimedia/2003/739.asp

    附可控制Flash Player的Javascript方法一覽表:

    Play() ---------------------------------------- 播放動畫
    StopPlay()------------------------------------停止動畫
    IsPlaying()----------------------------------- 動畫是否正在播放
    GotoFrame(frame_number)---------------- 跳轉(zhuǎn)到某幀
    TotalFrames()------------------------------- 獲取動畫總幀數(shù)
    CurrentFrame()------------------------------回傳當(dāng)前動畫所在幀數(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)到指定標(biāo)簽
    TCurrentFrame(movie_clip)--------------- 回傳movie_clip當(dāng)前幀-1
    TCurrentLabel(movie_clip)-----------------回傳movie_clip當(dāng)前標(biāo)簽
    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指定標(biāo)簽上的action
    TGetProperty(movie_clip,property)--------獲取movie_clip的指定屬性
    TSetProperty(movie_clip,property,number)-設(shè)置movie_clip的指定屬性

    flash與javascript交互演示:http://www.v-ec.com/dh20156/code/jsflash/fj.htm

    javascript與flash交互演示:http://www.v-ec.com/dh20156/code/jsflash/jf.htm

    posted on 2007-06-22 21:01 梅雪香 閱讀(6174) 評論(2)  編輯  收藏

    FeedBack:
    # re: 3種基本的Flash/Javascript通信方式 2009-05-21 22:17 魔獸世界私服
    好東西,學(xué)習(xí)了,,,,講得好啊,  回復(fù)  更多評論
      
    # re: 3種基本的Flash/Javascript通信方式 2009-12-08 19:06 shard
    多謝  回復(fù)  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲一级片内射网站在线观看| 久久久久久免费视频| 成人伊人亚洲人综合网站222| 亚洲一级免费视频| 1000部拍拍拍18免费网站| 亚洲图片在线观看| 免费在线视频你懂的| 91精品国产亚洲爽啪在线影院| 日韩精品在线免费观看| 久久亚洲精品成人综合| 99re在线视频免费观看| 亚洲国产精品成人久久久| 三年片在线观看免费大全| 亚洲中文无码永久免| 妞干网在线免费视频| 亚洲AV香蕉一区区二区三区| 国产精品自在自线免费观看| 国产亚洲情侣久久精品| 亚洲精品成人在线| 青青操在线免费观看| 亚洲精品福利在线观看| 中文字幕无码成人免费视频| 亚洲无码一区二区三区| 国产一级大片免费看| 三上悠亚电影全集免费| 亚洲白嫩在线观看| 韩国欧洲一级毛片免费| 人成电影网在线观看免费| 亚洲国产综合无码一区| 亚洲免费在线视频观看| 亚洲Aⅴ在线无码播放毛片一线天| 亚洲A∨精品一区二区三区| 男人天堂免费视频| 亚洲av永久无码嘿嘿嘿 | 中文字幕在线免费| 亚洲成在人线aⅴ免费毛片| 亚洲精品乱码久久久久久蜜桃| 久草视频在线免费看| 亚洲精品久久无码av片俺去也| 亚洲美女高清一区二区三区 | 免费的黄网站男人的天堂|