0
我正在開發一個具有Web瀏覽器控件的Windows應用程序。在某些鏈接上,Web瀏覽器加載了.SWF
(flash文件),在該flash中,一個按鈕與標題「Start」當用戶點擊這個按鈕時,一些動畫開始。在WebBrowser控件中與Flash文件進行通信C#
我想要這個事件,當用戶點擊「開始」按鈕。 我可以這樣做嗎? 我不能在.SWF
文件中放置任何代碼。 任何想法?
我正在開發一個具有Web瀏覽器控件的Windows應用程序。在某些鏈接上,Web瀏覽器加載了.SWF
(flash文件),在該flash中,一個按鈕與標題「Start」當用戶點擊這個按鈕時,一些動畫開始。在WebBrowser控件中與Flash文件進行通信C#
我想要這個事件,當用戶點擊「開始」按鈕。 我可以這樣做嗎? 我不能在.SWF
文件中放置任何代碼。 任何想法?
您必須使用ExternalInterface。首先,我們需要導入這個新的類,所以我們可以使用它(僅AS2,在AS3就沒有進口工作):
import flash.external.ExternalInterface;
接下來,我們必須註冊,我們要提供外部的任何功能:
ExternalInterface.addCallback("addText", addText);
基本上,上面的代碼將使我們能夠調用從C#應用程序中的功能addText(我將在一分鐘內顯示)。 addText函數如下。基本上,它需要一個字符串輸入,並追加到一個文本框
function addText(val:String):void
{
inTxt.appendText(val + "\n"); // append text recieved from c#
}
這就是它從ActionScript端。現在我們需要做的就是從C#調用函數。首先,我對Flash Player ActiveX控件的一個實例添加到我的表格,並加載我們在窗體的構造函數創建的SWF:
private AxShockwaveFlash player;
public DemoForm()
{
...
player.LoadMovie(0,Application.StartupPath + "\\EITest.swf");
player.Play();
...
}
接下來,我們所要做的就是在需要時調用外部化 方法。在我而言,它是在響應用戶點擊發送按鈕:
private void sendBtn_Click(object sender, EventArgs e)
{
player.CallFunction("" + outTxt.Text + "");
}
功能addText(VAL:字符串):無效的方法是在ActionScript中,正確的,如果是,那麼對不起,我不能做到這一點bcoz我不能添加AS中的任何方法。 – Amogh
看看http://fci-h.blogspot.it/2007/06/how-to-play-flash-swf-inside-c.html –
如果可以與社區分享 –