2015-10-18 20 views
5

Ich bin gerade dabei, ein VB.NET-Projekt zu erstellen. Ich möchte, dass das VB.NET-Projekt die Aktionen des Flash-Projektors steuert. (Stoppe, spiele, ändere den Text der Textkontrolle im Flash-Projektor, etc.) Dies ist eine Einwegsteuerung, aber nichts über den SWF-Projektor wird mit dem VB.NET-Projekt interagieren.Integration von VB.NET mit Flash in Visual Studio 2015 (Community)

Das Bild unten zeigt eine Idee von dem, was ich getan haben möchte.

Ideal goal of application

EDIT: Okay habe ich es geschafft verfügbar ein SWF-Objekt zu bekommen in das Projekt gesteckt werden. Nun, meine Frage ist, wie bekomme ich die beiden (Visual Studio und das SWF-Objekt, das in einem anderen Formular Fenster enthalten ist) zu interagieren. Das heißt, wenn ich eine Schaltfläche auf VisualBasic drücken, kann ich eine Funktion in AS3/SWF aufrufen, etwas zu tun und eine Variable aus dem Visual Basic-Formular zu erhalten.

Der AS3-Code enthält folgende

function fl_ClickToGoToWebPage(event:MouseEvent):void 
{ 
    lblText.text = "Congrats! It Works!"; 
} 

btnChange.addEventListener(MouseEvent.MOUSE_UP, fl_ClickToGoToWebPage); 

Hier ist ein Foto von der tatsächlichen SWF.

Mock SWF

Was Ich mag würde zu tun ist, um diese Funktion aufzurufen (oder eine ähnliche Funktion), die Informationen an die SWF-Projektor (als ActiveX-Flash-Objekt in Visual Studio ausgeführt wird) von der VB Form. (Ignorieren Sie die Schaltfläche auf der tatsächlichen SWF, diese Schaltfläche wird nicht im letzten Lauf vorhanden sein) Ich habe zwei Probleme:

1) Wie ändere ich addEventListener, so dass es mehr als einen Parameter oder Gibt es ein anderes Ereignis oder eine Funktion, die ich verwenden könnte?

2) Wie kann ich diese Funktion innerhalb von Visual Studio als Teil eines Unterprogramms oder einer Funktion innerhalb von VS/VB.NET aufrufen?

Ich brauche es nicht zu erwidern, wie in Visual Studio Informationen von der SWF erhalten.

+0

Für die Kommunikation zwischen Ihrem VB.NET-App und die swf, können Sie mit [ 'ExternalInterface'] (http: // Hilfe .adobe.com/de_DE/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html), schauen Sie sich dazu diesen [Beitrag] an (http://stackoverflow.com/a/31751792/2256820) wo Sie ein einfaches Beispiel finden können. – akmozo

+0

Das ist eigentlich meine Frage von vor einer Weile ... Ich konnte mich einfach nicht erinnern, dass ich es gepostet habe. Aber das klingt wie es von SWF zu VB geht. Ist es umgekehrt? –

+0

Ich habe nicht einmal gesehen, dass das dein war;) Nein, es ist VB, der eine ActionScript-Funktion aufruft. – akmozo

Antwort

2

Ich habe gerade einen Schnelltest mit Sendkeys durchgeführt und es hat funktioniert. im Herzen davon war:

den Flashplayer als Vordergrundfenster Einstellung ...

Freund Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd Als IntPtr) As Integer

und dann unter Verwendung der sendkeyes Befehl

System.Windows.Forms.SendKeys.SendWait

+0

Hatte nicht die 'SendKeys' Methode, sondern' ExternalInterface' zu ​​verwenden. Zumal ich versuche, ganze Datenstrings an die Flash-SWF zu senden. –

+0

Ich habe dies mehr oder weniger von einem Freeware-Programm genommen, das ich geschrieben habe, Sie sollten in der Lage sein, sehr lange Datenstrings ohne Probleme zu senden. In einem Test meines Programms, A Form Filler, tippte er fehlerfrei die erste Szene von Hamlet in Microsoft Notepad mit etwas mehr als 300 Wörtern pro Minute - also hoffentlich sollte es dir gut gehen :-) – Rob

+0

Hmm. Ich muss vielleicht diese Methode dann versuchen ... weil das Schreiben von XML nicht gerade Spaß macht. Wissen Sie zufällig, wo ich dann die volle Quelle sehen kann? –

Verwandte Themen