pythonを使うための準備
$ sudo vi /private/etc/httpd/mime.types
#末尾に追加
text/python py
text/jscript jsx
Apacheを再起動
ホームディレクトリのサイトディレクトリ内に sl のように適当な名前のディレクトリを作成する
展開しておいたSDKの中にある Silverlight 1.1 Alpha Samples.zip を展開し、中のDLRConsoleというディレクトリを sl ディレクトリにコピーする
Safariで http://localhost/~makoto/sl/DLRConsole/python/index.htm を開く。makotoは自分のユーザ名に置き換えてください
続いて、DLRConsole上のPythonを使ってアニメーションを作成しようと思ったのですが、.Net Framework3.0の純粋WPFに頭がやられてしまっていて、少し時間がかかりそうです(Ellipseを継承したクラスが作れないorz)。
とりあえずは、素敵なスクリーンキャストがあったのでみてみてください。
驚くことに、コンソールでは4つの言語、Ruby / Python / JScript / VB を同時に使っています。Pythonで作ったファンクションをJScriptから使ったりできちゃいます。
※DLRConsoleは英語キー配列で入力しなければなりません。また、コンソールは1行ごとにインタプリットされますが、PythonペインやXAMLペインは編集後、コントロール+エンターで内容が即時反映されます。
今、つまっているところ
例えば円(Ellipse)を作る場合に、位置指定の仕方がわからない。wpf.setPosition使わなきゃいけないのか?
それだとXAMLの記述と思考が一致しなくて困る(.Net Framework3.0+IronPythonだとこんなことはない)。
py> from wpf import Ellipse
py> e = Ellipse()
py> e.Width = 10
py> e.Height = 10
py> e.Canvas.Top = 10
System.MissingMemberException: couldn't find member Canvas at in , line 0
xamlを使えばできるけど、ランダムにたくさん作りたい場合に困る。というかLoadって遅そうなイメージが。。
py> xaml_ellipse = """
py| <Ellipse
py| Width="10" Height="10"
py| Canvas.Top="10" Canvas.Left="10" />"""
py> x_e = wpf.XamlReader.Load(xaml_ellipse)
py> canvas.Children.Add(x_e)