0

我正在开发一个具有 Web 浏览器控件的 Windows 应用程序。在某个链接上,Web 浏览器加载了一个.SWF(flash 文件),在那个 flash 中,有一个按钮,标题为“开始”,当用户单击此按钮时,一些动画开始启动.

当用户单击“开始”按钮时,我想要那个事件。我可以这样做吗?我不能将任何代码放入.SWF文件中。?任何想法?

4

1 回答 1

1

您必须使用外部接口。首先,我们需要导入这个新类,以便我们可以使用它(仅限 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 回答