乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      使用Flash和C

       ShangShujie 2008-05-15

      使用Flash和C# WinForm配合打造界面漂亮的應(yīng)用程序(摘要)

      作者:不詳 文章來源:互聯(lián)網(wǎng) 點擊數(shù):986 更新時間:2007-08-20 13:27:28 責(zé)任編輯: 天之驕子           
       

      由于之前一陣公司一個項目提出的需求,自己也想進行這方面的嘗試,我對如何使用 Flash 來做 WinForm 程序的界面產(chǎn)生了興趣,于是學(xué)習(xí)了一些資料,摘要于此。

      要在 WinForm 中使用 Flash,通常需要用到 Shockwave Flash Object 這個 COM 組件。
      (http://www./csharp/fscommand.asp)
      (http://www./useritems/FlashDBInteract.asp)

      具體步驟如下:
      首先添加對 COM 組件 Shockwave Flash Object 的引用,將該組件拖到窗體上之后,可性:

      Movie: Flash 的存放地址
      EmbedMovie: 是否嵌入到程序的資源中。

      接下來你可以設(shè)置其他一些屬性,使得 Flash 的窗口最大化,隱藏掉其宿主程序的 C# WinForm 窗體。

      在 Flash 的 ActionScript 中,可以通過 FSCommand 函數(shù)與 hosting app 通信,該函數(shù)有兩個參數(shù),分別是:

      command: 命令名稱
      parameters: 參數(shù)

      例子:

      on(press){
           fscommand(
      "Circule""Green");
      }

      在 C# 中,處理 Flash 對象的 FSCommand 事件即可。
      如果該事件處理函數(shù)的 EventArgs 為 e, 則有如下對應(yīng)關(guān)系:

      e.command -> Flash 中調(diào)用 FSCommand 時的 command 參數(shù);
      e.args -> Flash 中調(diào)用 FSCommand 時的 arguments 參數(shù)。

      在 C# 中往 Flash 傳遞數(shù)值用 SetVariable 方法:

      axShockwaveFlash1.SetVariable("variablename""valueasstring");

      對應(yīng)的,有一個 GetVariable 方法可以獲得 Flash 中的變量值。

      FSCommand 的參數(shù)只能傳遞一個,所以其功能存在一定的局限性。在你需要傳遞多個參數(shù)的時候,則需要在調(diào)用方用字符串拼接各個參數(shù)值,然后在被調(diào)用方重新解開。這種辦法使得復(fù)雜的傳值顯得很丑陋。

      不過,除了 FSCommand 外,我們還有另一種辦法和 Flash 通信,就是使用 Flash Player 8 External API.
      (http://www./cs/media/flashexternalapi.asp)

      使 用 External API,可以實現(xiàn) ActionScript 和 C# 的雙向調(diào)用。其好處就在于每次調(diào)用時的參數(shù)和返回值都通過一個 XML 文檔來傳遞,這樣就比 FSCommand 功能完善了很多。當(dāng)然在 C# 中,我們也需要聲明一下外部函數(shù)實現(xiàn)的對應(yīng)關(guān)系。

      代碼片段:
      Flash ActionScript 中聲明提供給 hosting application 調(diào)用的回調(diào)函數(shù):

      import Flash.external.ExternalInterface;
      ExternalInterface.addCallback(
      "loadAndPlayVideo"null, loadAndPlayVideo);

      C# 中調(diào)用 Flash 的情形:

           FlashPlayer.CallFunction("<invoke" + 
                
      " name=\"loadAndPlayVideo\" returntype=\"XML\">
                <arguments><string>" + fileDialog.FileName + 
                "</string></arguments></invoke>"); 

      在 ActionScript 中調(diào)用 C# 函數(shù):

      ExternalInterface.call("ResizePlayer"
            videoPlayer.metadata.width, videoPlayer.metadata.height);

      在 C# 中聲明被 Flash 調(diào)用的函數(shù):

      FlashPlayer.FlashCall += 
        
      new _IShockwaveFlashEvents_FlashCallEventHandler(FlashPlayer_FlashCall);

      在此,我們可以看到 C# 和 Flash 進行通信還是相當(dāng)方便的。

      除此之外,我順便搜索到其他一些和 Flash 有關(guān)的不錯的文章:

      Flash and .NET with FlashRemoting
      http://www./aspnet/FlashRemoting.asp

      Multiple File Upload With Progress Bar Using Flash and ASP.NET
      http://www./aspnet/FlashUpload.asp

      Flash GUI for your exe using minimalistic approach (C++)
      http://www./useritems/FlashGui.asp

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多