Silverlight

2009年2月10日


MSN産経ニュース - ニュースランキング

MSN産経ニュース - ニュースランキング (Internet Explorer ギャラリー)

自分がメインで開発に関わった製品が無事リリースされました。ジャパンカップの準備でリリース日は六合村におり、結構ドキドキしていましたが、特に大きな問題もなかった模様。

直前の直前まで仕様変更の繰り返しでかなりバタバタしましたが、周りの人に助けられ、特に大きなバグも残らずに何とかなった感じでした。

利用には IE8 とSilverlight2 のプラグインが必要です。

単なる RSS のアグリゲーションアプリですが、Silverlight らしさを結構出せたと思っています。Flash に比べると後発の技術なので、まだまだな点は多いですが、いろいろと楽しいことができそうなので、引き続きオチし続けていきたいと思っている技術です。


2008年6月17日


今日の Silverlight

DeepZoom のサンプルをこねくり回している日々。画像を Canvas の外に出ないようにしようと思っているが、うまく制御できない。

Page.xaml.cs ファイルの MouseMove にアタッチされているイベントのプロパティが何を意味しているのがよくわからない。

以下が画像の位置を決めているプロパティ

newOrigin.X = currentPosition.X - (((e.GetPosition(msi).X - dragOffset.X) / msi.ActualWidth) * msi.ViewportWidth);
newOrigin.Y = currentPosition.Y - (((e.GetPosition(msi).Y - dragOffset.Y) / msi.ActualHeight) * msi.ViewportWidth);

それぞれを試しに吐き出してみると

currentPosition.X = -0.39350089430809
e.GetPosition(msi).X = 381
dragOffset.X = 368
msi.ActualWidth = 1313
msi.ViewportWidth = 3.33333349227905

みたいな感じ。

e.GetPosition(msi).X は画像の左上端の座標
dragOffset.X はマウスでドラッグした最後の位置
msi.ActualWidth は MultiScaleImage の幅

というのはすぐにわかるのだが、currentPosition.X と msi.ViewportWidth の値が意味不明。

とりあえず以下の設定で X軸に関しては Canvas の外に出ないようにできた。

if (newOrigin.X > 0)
{
    newOrigin.X = 0;
}
else if ((msi.ViewportWidth + newOrigin.X) < 1)
{
    newOrigin.X = (1 - msi.ViewportWidth);
}

Y軸も上辺に関しては以下のコードで対応できた。

if (newOrigin.Y > 0)
{
    newOrigin.Y = 0;
}

が下辺が全然わからない。

msi.ViewportHeight の値を取りたいところだが、なぜかエラーになってしまって取れない。

そもそも MultiScaleImage に関する情報が全然ない。画像のサイズかと思いきや Canvas の値が取れてしまう。うーん、要試行錯誤。

β1 ではマウスホイールのイベントに関しては別途実装する必要があったんだけど、β2 からはデフォルトで対応した。

ズームに関しては以下の関数をいじればおk。

 public void Zoom(double zoom, Point pointToZoom)

最初の引数が倍率、2番目の引数がズームが始まる座標みたい。2番目の座標には point(0, 0) を入れておくと、挙動がわかりやすい。


MS の人による Expression Studio 2.0 の概略の説明が出てた
【レポート】Microsoft製デザインツール「Expression Studio 2」の特徴と新機能 (2) RIA/Webのオーサリングをビジュアルに | エンタープライズ | マイコミジャーナル


2008年6月11日


今日の Silverlight

昨日のエントリーの問題の原因がわかりました。

Silverlight 2 β2 で Deep Zoom (土器之絵)

6. のステップで、Blend 上でも VS2008 上でも、F5 をした場合、動的に TestPage.html が生成され、ASP.NET 開発サーバーでホストされ、ブラウザが起動します。

実際の HTML ファイルは、Deep Zoom Composer で Exportした時に、[Project名]Web - ClientBin フォルダ下に [Project名]TestPage.html というファイル名で生成されています。

この HTML ファイルから、[Project名].xap ファイルへのリンクが張られており、ソースの Xaml や CS のコードをいじってビルドをかけた場合、[Project名].xap が更新されるため、本来なら、[Project名]TestPage.html が表示されないといけないのに、TestPage.html ファイルが表示されるため、HTML からリンクされている xapファイルがないためにエラーになるみたいです。

これは Bugなのか?

現状の F5 で起動されるファイルパス
http://localhost:xxxxx/TestPage.html

実際のファイルパス
http://localhost:xxxxx/[Project名]Web/ClientBin/[Project名]TestPage.html


2008年6月10日


Silverlight 2 β2 で Deep Zoom

Silverlight 2 β2 で Deep Zoom を使って試しにサンプルを作ろうと思ったがいきなり挫折。
  1. Deep Zoom Composer を起動
  2. "Import" タブで画像ファイルを追加
  3. "Compose" タブで適当に画像を配置
  4. "Export" タブでエクスポート
    その時のオプション
    - Image Type は "Export as Collection"
    - Image Format は "PNG"
    - Output Type は Export Images and Silverlight Project
  5. Export ダイアログが出るので、Edit in Expression Blend を選択
    Expression Blend 2.5 June Preview を使用
  6. Blend 上で F5 で Build しても、スクリプトエラーになり、画面は真っ白な状態
  7. エラーメッセージ
    Unhandled Error in Silverlight 2 Application DeepZoomProject.xap
    Category: ImageErro
    Message: AG_E_UNKNOWN_ERROE
    

新たにリリースされた Deep Zoom Composer ではこれまでのように info.bin ファイルを吐かなくなった。これまで Xaml で

<MultiScaleImage x:Name="img" Source="xxx/info.bin"/>

としていた Source の指定はどうすればいいのだろうか?

代わりに sln ファイルを吐くようになったので、すぐに Blend や VS に持って行けるのは便利。



Silverlight 2 β2 関連の日本語ドキュメントも公開された。

Breaking Changes B1 to B2のドキュメント (PDF)
Microsoft Silverlight: Light Up the Web

ただフォーラムによると、SDK に含まれるドキュメントには問題がある模様。

Silverlight 2 SDK beta 2 日本語版に含まれているドキュメント - MSDN フォーラム


気になるのは
川西 裕幸のブログ : Silverlight 2 Beta 2
Beta 1で構築したSilverlight 2アプリケーション(Webページ)は、Beta 2ランタイム上では動作しません。多数の変更が行われているので、Beta 1のコードに修正が必要です。

という箇所。下位互換性無しかよ・・・。


2008年6月 9日


Silverlight 2 β2

ようやく週末に Silverlight 2 β2 まわりの環境がダウンロードできるようになった。

ちなみに、β1 関連が入っている場合は、それぞれ旧バージョンをアンインストールする必要がある。

Plug-in
http://www.microsoft.com/japan/silverlight/downloads.aspx

Visual Studio 2008 用 Microsoft Silverlight Tools Beta 2
http://www.microsoft.com/downloads/details.aspx?FamilyId=50A9EC01-267B-4521-B7D7-C0DBA8866434&displaylang=ja

Microsoft® Silverlight™ 2 Software Development Kit Beta 2
http://www.microsoft.com/downloads/details.aspx?FamilyId=BA7B510D-0646-4D06-9834-CB82D669872A&displaylang=ja

Microsoft Expression Blend 2.5 June 2008 Preview
http://www.microsoft.com/downloads/details.aspx?FamilyId=32A3E916-E681-4955-BC9F-CFBA49273C7C&displaylang=en


まだ試してないので、何が変わっているのかは不明。

Deep Zoom Composer もバージョンアップした。

こちらも以前のバージョンをアンインストールしてからセットアップする必要がある。

Deep Zoom Composer
http://expression.microsoft.com/en-us/cc507094.aspx

こちらもまだ試してないので詳細は不明だが、

Expression Blend and Design : What’s new in Deep Zoom Composer!

を見ると、PNGファイルに対応したのと、binファイル形式だったモノが、XMLファイル形式になったという 2点みたい。

Deep Zoom はこれから試してみたいことが色々とあるので、また後日。


2008年6月 4日


今日の Silverlight

急遽 Silverlight の作成法セミナーをしたり、別件が入ったりで今日はあまり勉強できず。

自分の作成法
  1. Expression Design で Xaml 生成

  2. Expression Blend で新規プロジェクト作成。1 で作った Xaml をテキストベースでコピペ。

  3. HTML、JS のコードはインテリセンスが機能する Visual Studio 2008 で編集。
という手順で作っている。

ここで問題がある。

2 の Blend でプロジェクトを作成した状態で保存しても、Project File や Solution File ができるわけではないので、いったん Blend を閉じてしまうと、Blend で同様のプロジェクトを開く場合、[File]メニューの [Recent Project](英語版表記) からじゃないと開けなくなってしまう点。

ので、3 の VS2008 で開いた状態で Solution として保存しておく必要がある。ちなみに Solution File(.sln) は Blend2.5 でも開くことができる。

まだダウンロードはできないみたいだけど、Silverlight 2 の β2 が発表されたみたい。

マイクロソフト、「Silverlight 2.0」ベータ2をリリース:ニュース - CNET Japan

他に Expression Studio 2 の日本語版が 7/18、IE8 β2 が 8/20、Expression Blend 2.5 June 2008 Preview と Silverlight Tools beta 2 for Visual Studio 2008 が今週中。

MS、IE 8のβ2の公開時期や新プロジェクト「Velocity」などを発表 - ITmedia News


2008年6月 3日


Silverlight で Cover Flow

この辺見て復習。

Silverlight開発を始めるための基礎知識
http://www.atmarkit.co.jp/fwcr/rensai2/silverlight01/silverlight01_1.html

Silverlight入門(1)
http://codezine.jp/a/article/aid/1836.aspx?p=1

上からは、最近流行ってる Cover Flow の UI 作れっていう指令が来ていたので、とりあえず思いつきで作ってみた。

Cover Flow Proto Type (IEで見てね。)
http://enokido.net/silverlight/coverflow/default.html

使った画像ファイルのサイズが大きいので、ロードに少し時間がかかります。今の課題はアニメーションをスムーズにする方法。Flash とかだとみんなどうやってるんだろう。Xaml もしこしこ書いていても割に合わないので、JS で DOM 使って吐き出した方が見やすくなりそう。

また、現状は画像 1枚、1枚それぞれに対して Storybord を適用しているので、その上の Canvas に対して適用して、中の画像を動的に変えた方がいいのかもしれない。


2008年6月 2日


Silverlight

これまでは陰でこそーりと自習していたけど、オフィシャルにやっていいよと言うことになったので、再開記念カキコ。

Silverlight 2.0 の βも出たし、Expression Studio も Version2.0 になったし、Expression Blend に関しては既に 2.5 になってるし、さっさと勉強しないとな。

とりあえず環境構築。

Silverlight version 1
http://www.microsoft.com/japan/silverlight/downloads.aspx

Silverlight version 2 Beta 1
http://www.microsoft.com/japan/silverlight/downloads.aspx

Expression Studio 2
http://www.microsoft.com/expression/category=1

Visual Studio 2008
http://www.microsoft.com/japan/msdn/vstudio/

Silverlight Tools Beta 1 for Visual Studio 2008
http://www.microsoft.com/downloads/details.aspx?FamilyID=e0bae58e-9c0b-4090-a1db-f134d9f095fd&displaylang=ja

Silverlight 2.0βを入れてから、Silverlight のページを見るとほぼ 100% の確率で Firefox が落ちる。何で? と思ってググったら、ポップアップブロックが原因みたい。

りーんが思う。あれそれ。  [Silverlight] FirefoxでSilverlightコンテンツが表示されない対処方法
遥佐保の技術メモ:[Silverlight] Firefoxが動かない - livedoor Blog(ブログ)

ここ最近の日経ソフトウェアと、WEB+DB PRESS で Silverlight が特集されていたのと、書籍を 1冊買ったので、とりあえず今週は写経週間かな。


管理人:えのきど。
職業:Web Design Engineer
(Designer+Programmer) / 2

Designer にも Programmer にも成りきれず、どっちつかずでふらふらしてます。先は見えてません。

生存証明用の日々のメモブログ。メインは雪山大好きっ娘。です。

このブログの RSS RSS
counter