我有一個c#應用程序,它承載了一個Flash應用程序(使用AxInterop.ShockwaveFlashObjects.dll中的Shockwave Flash Object)。
我可以使用flash的「fscommand」將命令從Flash應用程序發送到我的c#應用程序。
現在我需要從c#應用程序發送命令(如設置flash文本)到flash應用程序,我可以這樣做嗎?怎麼樣?如何將命令從c#應用程序發送到託管的adobe flash應用程序?
回答
有幾種方式來實現:
正如喬治Profenza指出,使用ExternalInterface是一個簡單的實現使雙向通信。它可以來回處理一些原始數據,並且非常適合於每次調用都涉及少量數據的託管Flash通信。但是,關於可以發送和接收多少數據,有size limit。
如果大小確實重要,XmlSocket將是另一種允許有狀態雙向通信的選項。在C#結束時,您可以使用snippet like this創建XmlSocket服務器,並讓主機應用程序託管服務器,然後讓Flash在啓動時連接到服務器。沒有大小限制,但是您必須將每個調用都編碼爲XML,所以在兩端都要序列化和反序列化數據。多年來,我在一些獨立的.NET基礎Winform應用程序中成功使用了這種技術。
第三個選項是利用FlashRemoting。它類似於上述選項中使用的策略,但「服務器」將是一個Flash Remoting服務器,它能夠使用AMF與Flash進行通信。這種方法的主要優勢在於,您不必編寫任何序列化/解串器,因爲服務器和Flash會爲您處理這些問題,並且也沒有大小限制,它非常適合您有各種各樣的場景具有複雜數據結構的調用。但是,集成服務器的前期成本。有open-source solution和closed-source solutions。
第三個選項可能不會被探索,因爲大多數人會將它用於Web應用程序。儘管我沒有把它作爲Windows窗體應用程序集成的第一手經驗,但我個人偏好第三種選擇。我喜歡它,因爲它有可能輕鬆地將應用程序轉換爲基於Web的應用程序,並且它還支持複雜的數據結構,而不會花費數據序列化。
很好解釋和記錄+1 – 2012-07-28 14:13:07
- 1. 如何從非託管應用程序的文本到C#應用程序?
- 2. 如何從GUI應用程序向控制檯應用程序發送命令
- 3. 從c#發送命令到java應用程序#
- 4. 將命令從Excel發送到應用程序? COM?
- 5. 如何從非託管應用程序
- 6. 如何發送消息從c#表單應用程序到Socket.io應用程序
- 7. Php發送命令到C++ Windows應用程序
- 8. 如何將消息從Win32應用程序發送到Java SWT應用程序?
- 9. 如何從swift中將應用程序發送到其他應用程序?
- 10. 如何從c#應用程序發送終端命令到樹莓派
- 11. 如何將應用程序發送至應用程序消息
- 12. 從服務器發送命令到android應用程序
- 13. 將管道參數發送到C#應用程序
- 14. 使用Adobe Alchemy將OpenGL圖像從C++代碼獲取到flash應用程序
- 15. 託管asp.net應用程序
- 16. 託管silverlight應用程序
- 17. 託管PHP應用程序
- 18. 託管應用程序7
- 19. EJB應用程序託管
- 20. Web應用程序託管
- 21. 使用Objective-C爲OS X應用程序發送CURL命令
- 22. 將命令發送到無窗口命令行進程(從C#應用程序啓動)
- 23. 如何通過命令行將iOS應用程序上傳到應用程序
- 24. 如何使用resclientemozilla發送應用程序的應用程序?
- 25. 如何從我的應用程序發送操作到其他應用程序?
- 26. 在c#應用程序中託管PDF
- 27. 如何從C程序向Linux命令發送命令
- 28. 如何從Red5將消息發送到我的Flash AS3應用程序?
- 29. 如何託管LightSwitch應用程序?
- 30. 如何在IOS動作擴展中託管應用程序發送數據到應用程序擴展
應該可以通過[ExternalInterface](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html?filter_flash=cs5&filter_flashplayer=10.2&filter_air=2.6) – 2012-07-28 08:58:06
@GeorgeProfenza:感謝您的回覆,是否有任何使用ExternalInterface的c#示例? – VirtualWorld 2012-07-28 09:21:07
試試[這](http://blog.another-d-mention.ro/programming/communicate-betwen-c-and-an-embeded-flash-application/) – 2012-07-28 10:10:09