<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

    失業中…

    常用鏈接

    留言簿(7)

    隨筆檔案(16)

    技術Blog

    搜索

    •  

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

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

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


    并不是所有的瀏覽器都很重視腳本.為了和Flash播放器通信,瀏覽器必須有內置的鉤子以便Flash播放器可以'監聽'.瀏覽器必須是下列的幾種:
    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 發送到該頁面中的Flash文件中.HTML input的數據通過Flash的SetVariable方法傳送到Flash文件中.

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

    步驟:

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

    Dreamweaver中
    下一步的工作轉移到Dreamweaver中了,當然也可以是其他的HTML編輯器
    1.打開上一步發布的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.創建表單域
    (1) 回到設計視圖
    (2) 插入文本域(Insert> Form Object> Text Field),如果詢問是否添加表單域,選擇是
    (3) 把文本域的HTML標簽修改成這樣:

    <input type="text" name="sendText" maxlength="45" onChange="doPassVar(this)">
    每當文本域內容發生變化時,onChange就被觸發,doPassVar()函數就被調用

    4.創建傳遞變量值的Javascript函數
    復制下面的Javascript到<head></head>標簽內

    <SCRIPT LANGUAGE=JavaScript>
    <!--
    function doPassVar(args){
    var sendText = args.value;
    window.document.myFlash.SetVariable("myVar", sendText);
    }
    //-->
    </SCRIPT>
    5.保存文件,測試一下(F12)


    Flash到Javascript的通信
    從HTML可以發送數據到Flash,反過來也可以. 這個例子演示了如何應用Flash的Fscommand來發送數據到Javascript.

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

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

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

    Dreamweaver中
    1.打開導出HTML文件,修改<OBJECT>和<EMBED>標簽,結果同上:
    <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>標簽內:
    <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

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

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

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

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

    Play() ---------------------------------------- 播放動畫
    StopPlay()------------------------------------停止動畫
    IsPlaying()----------------------------------- 動畫是否正在播放
    GotoFrame(frame_number)---------------- 跳轉到某幀
    TotalFrames()------------------------------- 獲取動畫總幀數
    CurrentFrame()------------------------------回傳當前動畫所在幀數-1
    Rewind()-------------------------------------使動畫返回第一幀
    SetZoomRect(left,top,right,buttom)-------放大指定區域
    Zoom(percent)------------------------------改變動畫大小
    Pan(x_position,y_position,unit)------------使動畫在x,y方向上平移
    PercentLoaded()----------------------------返回動畫被載入的百分比
    LoadMovie(level_number,path)----------- 加載動畫
    TGotoFrame(movie_clip,frame_number)- movie_clip跳轉到指定幀數
    TGotoLabel(movie_clip,label_name)------ movie_clip跳轉到指定標簽
    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的指定屬性

    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 魔獸世界私服
    好東西,學習了,,,,講得好啊,  回復  更多評論
      
    # re: 3種基本的Flash/Javascript通信方式 2009-12-08 19:06 shard
    多謝  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 337p日本欧洲亚洲大胆色噜噜| 亚洲爆乳无码专区www| 1000部拍拍拍18勿入免费视频软件| 亚洲av永久无码嘿嘿嘿| 日本免费一区二区三区最新vr| 日韩精品久久久久久免费| 亚洲中文字幕无码av在线| yy6080久久亚洲精品| 久久免费视频99| 国产成人精品久久亚洲高清不卡| 亚洲永久精品ww47| 成人黄18免费视频| 高清永久免费观看| 亚洲情a成黄在线观看| 91老湿机福利免费体验| 国产精品亚洲一区二区无码| 亚洲国产一区在线| 亚洲av日韩av欧v在线天堂| 国产一卡二卡四卡免费| 国产日韩精品无码区免费专区国产| 亚洲人6666成人观看| 亚洲女同成av人片在线观看| 韩国18福利视频免费观看| 亚洲人成网站免费播放| 亚洲国产精品成人精品无码区| 中文字幕免费人成乱码中国| 在线综合亚洲欧洲综合网站| 女性自慰aⅴ片高清免费| 亚洲AV无码一区二区三区网址 | 一本久久免费视频| 97久久国产亚洲精品超碰热| 亚洲国产精品无码中文字| 四虎永久免费影院| 最近中文字幕无免费视频| 3344免费播放观看视频| 三级网站免费观看| 免费国产a理论片| 亚洲人成色777777老人头| 亚洲国产精品综合久久2007| 亚洲国产精品VA在线看黑人| 久久影院亚洲一区|