2009-04-20 3 views
5

私はFlexサイトを作成する上での基本的な経験はありますが、デスクトップAIRアプリケーションの作成にFlexを使用する方が多いと思います。C#with AIRを使用するには?

とにかく、C#とActionscript/AIRの併用が可能かどうか疑問に思いますか?私はこれの例を見つけることができません。

また、FlexアプリケーションでカスタムFlashコンポーネントを使用できますか?私はJavascriptコンポーネントを使用できることを知っています。

おかげ

答えて

8

AIRであなたのオプションは、HTML/JS、フラッシュ/ ActionScriptまたはFlexのに限定されています。他の言語やフレームワークはサポートされていません。

+0

です。これにより、利用可能な第三者APIの選択肢が制限されませんか?また、Actionscriptは電子メールを送信できませんが、他の言語のメソッドを呼び出すことができます(私は思っています)。また、これは私のアプリがかなり基本的であることを意味しないでしょうか? – dotnetdev

+0

dotnetdevを使用すると、航空アプリケーションからデータを送受信するためにサーバーを呼び出すことができます。 – Tracker1

+0

@dotnetdev - あなたはAIRからraw TCP/IPソケットにアクセスできます。つまり、電子メールを直接送信できますが、これはおそらく別の質問のトピックになります。 –

0

AIRの要点は、AS/JSを知っているWeb開発者が自動的にwin、linux、およびmacに移植できるデスクトップアプリケーションを簡単に作成できるようにすることです。それで、C#、C++などの他の言語に接続する方法がないのはなぜですか?Web開発者は一般的にそれらの言語を気にしませんし、それらが使用されると、アプリケーションはもはや移植性がなくなります。いくつかの努力で他のOSに移植されていますが、AIRのポイントはあなたが何でも書いて、余分な作業をすることなくどこでも実行できることです)。

C#とFlashを組み合わせたい場合は、C#をAIR内に置くのではなく、FlashをC#アプリケーションの中に置く必要があります。これにはインターネット上のさまざまなリソースがあります。ここでは簡単検索で見つけたものがあります:Example: Using the External API with an ActiveX container検索しているときは、oldschool SetVariable/CallFunction/watchメソッドではなく、より新しい、より高度なExternalInterface/External APIメソッドについて話してください。新しい方が使いやすくなりました&にはもっと多くの機能があります。

また、はい、Flexアプリケーション内でカスタムFlashコンポーネントを使用できます。通常は、Flash CS3(またはCS4)内でSWCを作成してから、Flex Builder(またはFlex SDK、FlashDevelopなど)内でそのSWCをインポートするだけです。

Flash CS3の内部にコンポーネントを作成する場合は、 Flexコンポーネントキットを使用する必要があります。これは、あなたのためのいくつかの機能を提供し、定型コードに入れて、あなたのフラッシュコンポーネントがFlex内でうまくいくようにします。 Flex Builder/Flex SDKに付属しています。

1

あなたのデータベース(おそらくSQL Server)に接続するためのミドルウェアとしてc#を使用している場合、またはリモート計算を実行する場合は可能です。リモートオブジェクトを使用してC#サービスに接続できます。真夜中のコーダーは、WebORBと呼ばれる、使い方が簡単な製品を制作しています。バージョン3.4は完全に無料のバージョンで、Airでデスクトップアプリケーションを構築する場合には十分です。次の2つのバージョンは無料ではありませんが、実質的な利点はありません。

2

Slukseは正しい - それはあなたが「横並び」とは何を意味するのかによって異なります。

明らかに、C#コードをSWFにコンパイルすることはできません。しかし、.NETフォームアプリケーションにActiveXコントロールを埋め込み、そのコントロールにSWFをロードし、ExternalInterface APIを使用して、デスクトップアプリケーションで実行されているC#コードとSWFで実行されているActionScriptコードをブリッジすることができます。 FlexアプリケーションでデータをレンダリングするためのサーバーサイドのC#コードを書くことを意味するのであれば、もちろんそうすることもできます。FlashやFlex(またはAIR、拡張された)アプリケーションを、比較的新しいWCFのものを含むさまざまな味のWebサービスに提供します。

もう1つの方法は、スタンドアロンのC#デスクトップアプリケーション(サービス、コンソールアプリなど)を実行し、そのアプリケーションが特定のローカルポートをリッスンするようにすることです。 Socketクラス。私は個人的なプロジェクトのために今のようなことをしています(JavaではC#ではなく、アイデアは同じです)。

0

これを行う方法がわかっている唯一の方法は、C#WebサービスプログラムとAIR/FlexアプリケーションがWebサービスと通信することです。

3

C#コンソールアプリケーションを作成し、このアプリケーションをAIRから呼び出すことができます。

var file:File = File.applicationDirectory; 
file = file.resolvePath("CSharpConsoleApplication.exe"); 
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo(); 
nativeProcessStartupInfo.executable = file; 
nativeProcessStartupInfo.arguments.push("-arg"); 
var process:NativeProcess = new NativeProcess(); 
process.addEventListener(NativeProcessExitEvent.EXIT,onProcessDone); 
process.start(nativeProcessStartupInfo); 

このように、私たちはAIRインターフェイスを備えたC#アプリケーションを持っています。

関連する問題