OSXでSilverLight上のIronPythonを使って遊ぶ。

2007/05/13 18:17

※ 商品のリンクをクリックして何かを購入すると私に少額の報酬が入ることがあります【広告表示】

SilverLightのインストール

  1. OSX用のSilverlight1.1 Alphaを ダウンロード &インストールする。

  2. Silverlight1.1 Alpha SDKを ここ の右側にあるTop Downloadsから辿ってダウンロード。展開する。

  3. Safariを終了する。

(追記) Intel macでないと動作しません (忘れてた)

pythonを使うための準備

  1. OSXのApacheに.py / .jsxを認識させる

  $ sudo vi /private/etc/httpd/mime.types
  #末尾に追加
  text/python    py
  text/jscript    jsx
  1. Apacheを再起動

  2. ホームディレクトリのサイトディレクトリ内に sl のように適当な名前のディレクトリを作成する

  3. 展開しておいたSDKの中にある Silverlight 1.1 Alpha Samples.zip を展開し、中のDLRConsoleというディレクトリを sl ディレクトリにコピーする

  4. 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)

Prev Entry

Next Entry