2015-10-18 99 views
5

Attualmente sto lavorando a un progetto VB.NET. Voglio che il progetto VB.NET controlli le azioni del proiettore Flash. (Interrompere, riprodurre, modificare il testo del controllo del testo nel proiettore Flash, ecc.) Questo è un controllo a senso unico, tuttavia, nulla sul proiettore SWF interagirà con il progetto VB.NET.Integrazione di VB.NET con Flash in Visual Studio 2015 (Community)

L'immagine seguente mostra un'idea di ciò che voglio fare.

Ideal goal of application

EDIT: Ok sono riuscito ad ottenere un oggetto SWF a disposizione da mettere nel progetto. Così ora, la mia domanda è come ottengo i due (Visual Studio e l'oggetto SWF che è incluso in un'altra finestra di forma) per interagire. Cioè, se premo un pulsante su VisualBasic, posso chiamare una funzione in AS3/SWF per fare qualcosa e ricevere una variabile dal modulo Visual Basic.

Il codice AS3 contiene le seguenti

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

btnChange.addEventListener(MouseEvent.MOUSE_UP, fl_ClickToGoToWebPage); 

Ecco una foto del SWF reale.

Mock SWF

Quello che vorrei fare è richiamare questa funzione (o qualche funzione simile) passando informazioni al proiettore SWF (essere eseguito come un oggetto ActiveX Flash in Visual Studio) dalla forma di VB. (Ignora il pulsante sul file SWF effettivo, quel pulsante non sarà lì nell'esecuzione finale) Sto riscontrando due problemi:

1) Come posso modificare addEventListener in modo che possa richiedere più di un parametro o c'è un altro evento o funzione che potrei usare?

2) Come si richiama questa funzione da Visual Studio come parte di un sub o di una funzione da VS/VB.NET?

Non ho bisogno di ricambiare, come in Visual Studio ottenere informazioni dal SWF.

+0

Per comunicare tra la vostra applicazione VB.NET e il file SWF, è possibile usare [ 'ExternalInterface'] (http: // help .adobe.com/it_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html), per questo, dai un'occhiata a questo [post] (http://stackoverflow.com/a/31751792/2256820) dove puoi trovare un semplice esempio. – akmozo

+0

Questa è in realtà la mia domanda da un po 'di tempo fa ... Non ricordo di averlo postato. Ma sembra che vada da SWF a VB. È il contrario? –

+0

Non ho nemmeno visto che fosse tuo;) No, è VB che sta chiamando una funzione ActionScript. – akmozo

risposta

2

Ho appena eseguito un test rapido utilizzando sendkeys e ha funzionato bene; al centro di esso è stata:

impostando il flashplayer come la finestra in primo piano ...

amico Declare Function SetForegroundWindow "user32" Lib (ByVal hWnd come IntPtr) come numero intero

e quindi utilizzando il comando sendkeyes

System.Windows.Forms.SendKeys.SendWait

+0

Speravo di non usare il metodo 'SendKeys' ma' ExternalInterface'. Tuttavia, soprattutto perché sto cercando di inviare intere stringhe di dati al Flash SWF. –

+0

Più o meno ho preso questo da un programma freeware che ho scritto, dovresti essere in grado di inviare lunghe stringhe di dati senza problemi. In un test del mio programma, A Form Filler, ha impeccabilmente battuto Act 1 Scene 1 di Hamlet in Microsoft Notepad a poco più di 300 parole al minuto - quindi spero che dovresti essere ok :-) – Rob

+0

Hmm. Potrei dover provare questo metodo allora ... perché scrivere XML non è esattamente divertente. Ti capita di sapere dove posso vedere l'intera fonte allora? –