この前、SWFからExternalInterfaceを経由して、Silverlight 1.1 のDLLを使用するサンプル作ってみましたが、Silverlight1.1 が Alpha Refresh版となったことで、Alpha Refresh用にサンプル・ソースを変更しました。
[Flash]SWFからSilverlight 1.1のDLLを使う
http://violentcoding.com/blog/2007/06/10/archives/8
変更といっても、Silverlight.js差し替えたり、
CreateSilverlight.jsの中で「 Sys.Silverlight.createObjectEx({source: ’simple.xaml’,・・・」となっている部分で、最初の「Sys.」を消すぐらいで済みました。その他はSilverlightのプロジェクト名を変えたのでネームスペースを調整しています。
Related posts
SWFからSilverlight 1.1 AlphaのDLLを拝借する実験(Alpha Refresh対応版)。
Sliverlight 1.1ではJavascriptからC#/VBなどのマネージコードを呼び出す事ができます。
Sliverlight1.1でJavascriptからDLLのコードを呼び出すサンプルはSliverlightのQuickStartsを参考。
Silverlight: QuickStarts > Interaction Between HTML and Managed Code > Calling Managed Code from JavaScript
http://silverlight.net/QuickStarts/Dom/ManagedCodeAccess.aspx
※サンプルを試すにはSilverlight 1.1 Alpha Refreshが必要。
このサンプルでは1×1pxのSilverlightが左上にある。
日本語での説明はこちらを参照してください。
(以前のSilverlight1.1 Alphaコードでサンプルは動作しない)
Silverlight: QuickStarts「JavaScriptからマネージコードを呼び出す」
Javascriptからできるってことは・・・
SWFからそのJavascriptをExternalInterfaceで呼び出せば良いだけでした。
動作サンプル:
Calling managed code from Javascript(+SWF)

※要プラグイン
Adobe Flash Player 9
Microsoft Silverlight 1.1 Alpha Refresh
この動作サンプルではSilverlight部分を大きくしたり、SWF用に同じ処理内容のJavascriptを加えたりしています。
ソースダウンロード:
※動作サンプルはExternalInterfaceを使っているのでローカル環境(file:///・・・)では動かないかもしれません。確認はローカルサーバー等で試してください。
メモ:
Silverlight: QuickStarts「 JavaScript からマネージコードを呼び出す」のチュートリアルの注意
チュートリアル/ソースコードを試す場合には、
- simple.xamlのクラス指定部分でネームスペース、アセンブリ名を調整する。
- プロジェクトのプロパティでビルド先指定「CliantBin¥」を取り除く。
- 「createsilverlight.js」をdefault.htmで指定している「CreateSilverlight.js」に名称変更する。
Related posts