ExternalInterface VisualBasic

Ноябрь 11, 2008

Поискав в документации, я не обнаружил объяснения как работать с ExternallInterface через activeX компонент в собственном приложении, поэтому решил дать некоторые разъяснения на примере взаимодействия с Visual Basic 2008.

Сначала флеш:

package {
   import flash.display.Sprite;
   import flash.external.ExternalInterface;

   public class Main extends Sprite {

      public function Main() {
         ExternalInterface.addCallback("getFromVB", getFromVB);
         ExternalInterface.call("sendToVB", "VB, Hello");
      }

      public function getFromVB(val:String):void {
         //Здесь здесь работаем с val из VisualBasic
      }
   }

}

Теперь Visual Basic. Добавляем flash activeX на панель инструментов (Правая кнопка > Choose items> Browse..) из C:\Windows\System32\Macromed\Flash а затем на сцену (я назвал его MainMovie):

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
   MainMovie.LoadMovie(0, Application.StartupPath + "\test.swf")
End Sub

Private Sub MainMovie_FlashCall(ByVal sender As Object, ByVal e As AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent) Handles MainMovie.FlashCall
   'сюда приходит флеш запрос  из call метода
   MsgBox (e.request)

   'Отправляем обратно
   MainMovie.CallFunction('<invoke name="getFromVB"><arguments><string>Hi, Flash</string></arguments></invoke>')
End Sub

В окошке сообщения в Visual Basic мы увидим:

VB, Hello

Все это с легкостью можно повторить в любом другом IDE.

Комментировать