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.
Комментировать