0

Webブラウザコントロールを備えたWindowsアプリケーションを開発しています。一部のリンクでWebブラウザが.SWF(フラッシュファイル)をロードし、そのフラッシュに「開始」というキャプションが付いたボタンが1つあり、ユーザーがこのボタンをクリックすると、一部のアニメーションが開始されます。 。

ユーザーが「スタート」ボタンをクリックしたときにそのイベントが欲しいです。それをしてもいいですか?.SWFコードをファイルに入れることができません。何か案が?

4

1 に答える 1

1

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 + "");
  }
于 2012-09-18T07:24:00.483 に答える