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

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

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

    隨筆-60  評論-35  文章-15  trackbacks-0
      2007年4月13日
    站長工具
      eWebEditor網頁編輯器
      FCKEditor在線編輯器
      HTML在線編輯器
      所見即所得CSS編輯器
      CSS整形與最佳化工具

      顏色工具
      配色方案創建工具二
      在線網頁配色器

      網絡輔助
      超級轉貼工具
      易貼網絡備忘錄
      超級編碼轉換器

      查詢工具
      中國站長站查詢工具
      日梭萬年歷
      世界網絡查詢工具
      在線電子地圖
      全國報紙雜志電子版總匯
      全息在線萬年歷

      圖片工具
      Logo在線制作
      IE版圖像處理工具
      圖片倉庫
      Eoool在線圖片制作
      在線生成圖片按鈕的工具
      在線生成條形碼和印章的工具
      字庫字體在線工具
      在線按鈕制作工具
      多媒體可視化開發系統
      愛狗狗吧在線彩字生成工具
      在線照片相框生成工具

      加密解密
      網頁加密解密工具

      計算工具
      多功能計算器

      在線手冊
      終極配色手冊
      邁至科ASP在線技術手冊
      XML官方指南中文版
      Windows API 參考大全
      VBScript 語言參考
      VB API 參考手冊
      PHP用戶手冊
      PHP編碼規范
      InnoDB  中文參考手冊
      文檔對象模型中文手冊
      網頁制作完全手冊
      默認行為中文手冊
      樣式表濾鏡中文手冊
      樣式表中文手冊


    轉載自:http://www.egil.cn/article.asp?id=333
    posted @ 2008-01-05 20:45 Q系列類、方法、變量…… 閱讀(355) | 評論 (0)編輯 收藏

      一、AS調用JS方法時出現同名方法查看實例

      AS代碼如下:

    import flash.external.*;
    var v = ExternalInterface.available;
    t_btn.onRelease 
    = function (){
    //調用JS函數
    var s = ExternalInterface.call("say","JS函數調用成功!")
    //調用AS本地函數
    += say("\n本地函數調用成功!");
    r_txt.text 
    = s;
    }
    //AS本地函數
    function say(s){
    return s;
    }  
    HTML代碼:
    //定義一個JS函數
    function say(txt){
    return txt;
    可以看到在JS中定義了一個say方法供AS調用,現在我們在AS中定義了一個同名的say方法來驗證它們是否會出現覆蓋。結果證明它們不會覆蓋,都工作得很好。(PS:不錯~)

    二、JS調用AS方法時出現同名方法查看實例

      AS代碼如下:

    //導入包
    import flash.external.*;
    //提供JS訪問的函數名
    var _method:String = "say";
    //指定本地函數中this變量的作用域,可設置為null留空
    var e_area:Object = null;
    //AS內部函數名
    var method:Function = say;
    //將函數注冊到容器列表
    var wasSuccessful:Boolean = ExternalInterface.addCallback(_method, method);
    ↑ 這里返回的void因此無法轉換為Boolean

    //查看注冊是否成功
    if(wasSuccessful){
    result_txt.text 
    = "函數注冊成功";
    }
    //本地的函數
    function say(txt:String) {
    result_txt.text 
    = txt;
    }

    HTML代碼如下:
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh_cn" lang="zh_cn">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>javascript 調用 flash 方法</title>
    <script language="javascript">AC_FL_RunContent = 0;</script>
    <script src="AC_RunActiveContent.js" language="javascript"></script>
    </head>
    <body bgcolor="#ffffff">
    <!--影片中使用的 URL-->
    <!--影片中使用的文本-->
    <!--
    <p>你們好</p>
    -->
    <!-- saved from url=(0013)about:internet -->
        
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="550" height="400" align="middle" id="myFlash">
        
    <param name="allowScriptAccess" value="sameDomain" />
        
    <param name="allowFullScreen" value="false" />
        
    <param name="movie" value="flash讀取css.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />    <embed name="myFlash" swLiveConnect="true" src="flash讀取css.swf" quality="high" bgcolor="#ffffff" width="550" height="400" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
        
    </object>
    <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>

    <script>


    //定義一個JS本地函數
    function say(s){
    thisMovie(
    "myFlash").say(s);
    //↑這里的demo指的是使用Object插入flash的時候指定的id和embed指定的name,例如:id="demo"和name="demo"

    alert(s);
    }

    //瀏覽器兼容訪問DOM,并且將 flash Object返回
    function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft"!= -1) {
    return window[movieName]
    }
    else {
    return document[movieName]
    }
    }

    </script>


    <form name="www">
    內容:
    <input type="text" name="sendText" maxlength="45" onChange="say(this.value)" > 
    </form>
    </body>
    </html>

    可以看到在AS中定義了一個say方法供JS調用,現在我們在JS中定義了一個同名的say方法來驗證它們是否會出現覆蓋。結果證明它們不會覆蓋,都工作得很好。(PS:也不錯~)

      通過上面的兩個例子我們可以得出結論在使用ExternalInterface時即使定義了同名方法,也不會造成方法覆蓋,你大可放心使用。



    其余
    ============================================================
     在論壇上經常看見有新手問到“我想讓FLASH得到URL中的參數ID號,該怎么辦?”“某某視頻網站的FLASH播放器是如何播放不同ID的視頻的?”...諸如此類問題看到了太多,每次都有一堆回帖,眾說紛紜,里面難免有誤導性質的回復。今天特結合自己平時工作中使用的心得對此類問題做一個小小的歸納。
      我所指的靜態傳值是區別于與服務端通信進行值傳遞的方式,例如LoadVars,XML,Remoting之類,后者暫且不在本文的討論范圍內,當你想讓FLASH獲取URL中的參數時,你為何不換個角度想了?其實我們可以讓服務端動態生成SWF的的插入代碼,主動將我們需要的參數“靜態”傳遞給FLASH,FLASH直接用就可以了,根本不需要自己去拿,而以何種形式傳遞給FLASH,就是我所指的靜態傳值。我知道的可行的HTML與FLASH之間的靜態傳值方法有三種:
    • SWF地址后使用參數傳遞符“?”
    • FlashVars傳遞
    • JS控制

      下面來具體介紹下這三種方式的傳遞是如何工作的:
      

    一、SWF地址后使用參數傳遞符“?”

      我們知道,在ULR地址中使用參數傳遞符“?”可以以GET方式傳遞參數,例如http://www.v-sky.com?uid=12&uname=vsky,這里使用了參數傳遞符“?”,同時使用了連接符“&”做為變量分隔標識,以這種規范的格式來傳遞兩個參數:uid=12和uname=vsky,那么服務端可以使用GET方式獲取這兩個值。
      在FLASH中我們同樣可以采用類似的方式來傳遞參數,HTML頁面中插入SWF文件最常用的就是使用Object標簽和Embed標簽結合的方式,這也是Adobe的推薦方式:
      
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="400" height="300" id="flashvars" align="center">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="movie" value="demo.swf?uid=12&uname=vsky" />
    <param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />
    <embed src="demo.swf?uid=12&uname=vsky" quality="high" bgcolor="#ffffff" width="400" height="300" name="flashvars" align="center" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
    </object>



      其中粗體部分對應的就是SWF文件的地址,那么我們可以在這個地址后面通過類似于URL中GET方式傳參的方法來個SWF傳遞參數,例如上面代碼在頁面完全加載完畢時,它已經給SWF文件寫入了兩個變量:uid=12和uname=vsky。

      

    二、FlashVars傳遞

      你可以查閱FLASH幫助文檔來看FlashVars的官方定義。其實在HTML語法中,這是一個被很多新手所忽視的屬性,同樣以上面的參數為例,下面用FlashVars來傳遞變量:

    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="400" height="300" id="flashvars" align="center">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="movie" value="demo.swf" />
    <param name="FlashVars" value="uid=12&uname=vsky" />
    <param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />
    <embed src="demo.swf" FlashVars="uid=12&uname=vsky" quality="high" bgcolor="#ffffff" width="400" height="300" name="flashvars" align="center" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
    </object>


      跟方式一相同,它也是直接給FLASH里添加了這兩個變量。但我個人推薦使用此方式,結合SWFObject的使用,使用FlashVars來傳遞變量有很多好處,例如代碼清晰,容易管理,瀏覽其兼容,符合標準。他們的結合使用在“為FLASH程序構造靈活的接口”一文中我已經做了介紹(PS:隨后我會提供一個復雜點的、有說服力的實際應用來說明這種靈活接口的使用)。
      

    三、JS控制

      對于客戶端頁面中的資源,JS通過DOM結構來控制它們可以說是隨心所欲的,FLASH也不例外,下面是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的指定屬性



      在這里我們只需要使用的是粗體標識的SetVariable方法,JS通過調用此方法能夠直接更改SWF中的變量值。首先我們需要定義插入的SWF的ID,例如id為VskyDemo,那么我們可以通過下面的JS語句來完成SWF內部變量的設置:

    window.document.VskyDemo.SetVariable("uid", 12);


      很簡單吧,就是這樣的。除非是涉及到了HTML中SWF之外元素跟它交互,否則我一般不使用JS來控制SWF里的變量,因為我總覺得怪怪的,呵呵,個人習慣吧。
      多多實踐,不要覺得這些小東西不起眼,小東西多了,聚結到一起了就是一個大的應用。
      條條大路通北京,選擇你自己喜歡的,自己認為便捷的方式就可以了,目前我是沒有發現這三個方式存在功能上的缺陷。


    ======================================================================================

    前言、JavaScript和Macromedia Flash的通信示例

    原文地址: http://www.macromedia.com/support/flash/ts/documents/java_script_comm.htm
    說明: 略作修改,主要是一些很初級的操作; 又很多相似的文章,不過這個很權威

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

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

    一、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.flashempire.com/school/tutorview.php?id=327

    附可控制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的指定屬


    posted @ 2007-12-18 18:00 Q系列類、方法、變量…… 閱讀(2949) | 評論 (2)編輯 收藏
    alter table admin                #<---- 表名
       add CONSTRAINT `xxid_fk`      #<---- 復合主鍵名稱
          FOREIGN KEY (`xxid`)       #<---- 表字段名
            REFERENCES `club`(`id`)  #<---- 外鍵表名+字段名
    posted @ 2007-04-13 15:15 Q系列類、方法、變量…… 閱讀(294) | 評論 (0)編輯 收藏
    主站蜘蛛池模板: 免费h视频在线观看| 老司机精品免费视频| 国产精品视频免费| 亚洲欧洲日韩国产| 巨波霸乳在线永久免费视频| 亚洲久本草在线中文字幕| 日本免费大黄在线观看| 亚洲男人的天堂在线播放| 最近免费中文字幕mv在线电影| 久久亚洲国产成人精品性色| 最近中文字幕国语免费完整| 亚洲精品免费在线| 日韩av无码成人无码免费| 国产精品亚洲精品| 国产中文字幕免费观看| 一级毛片在线免费播放| 亚洲国产精彩中文乱码AV| 中文字幕视频免费| 亚洲日本VA午夜在线电影| 国产精品久久免费视频| a一级毛片免费高清在线| 亚洲好看的理论片电影| 在线观看特色大片免费视频| 男人的天堂av亚洲一区2区| 久久久久亚洲av成人无码电影| 免费无码H肉动漫在线观看麻豆| 亚洲AV成人片色在线观看高潮| 真人做人试看60分钟免费视频| 亚洲色大成网站www| 亚洲熟伦熟女新五十路熟妇| 久久精品视频免费| 亚洲人成色4444在线观看| 亚洲一级片内射网站在线观看| 日本一卡精品视频免费 | 欧美男同gv免费网站观看| 亚洲AV无码成人精品区狼人影院| 久久青青草原亚洲av无码| 日韩视频在线精品视频免费观看| 另类小说亚洲色图| 久久精品国产亚洲AV香蕉| 无人在线观看完整免费版视频|