2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

使用Flash和C

 ShangShujie 2008-05-15

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

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

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

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

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

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

接下來你可以設置其他一些屬性,使得 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, 則有如下對應關系:

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

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

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

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

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

不過,除了 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 功能完善了很多。當然在 C# 中,我們也需要聲明一下外部函數(shù)實現(xià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 進行通信還是相當方便的。

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

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)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多