Wonderfl が楽しい

December 28th, 2008

Emotion Fractal in AS3 を投稿したら 10 人もの方に favorite をつけてもらった。嬉しい。

こんな風にすぐフィードバックがもらえるので Flash でちょっとしたものを作って公開するのには最適の場と言えるかもしれない。

もっとも最近はいよいよ年末ということで皆忙しくなってきたためか人が少ない気もするが。


ところで Flash ではクロスドメインでのデータの読み込みに少し制約があって、例えば画像なら読み込んで表示させること自体は可能なのだが、BitmapData に落とし込もうとするとセキュリティサンドボックスの侵害になってしまう。

その辺はここが詳しい。 AS で別ドメインの画像を読み込むときの注意点

そのため、wonderfl で外部画像を取得してピクセルを読んだりする場合には、crossdomain.xml を設置した自分のサーバにまずアップロードしておいてから、それを読むようにしなくてはならない。

これでは不便なので、プロキシを介することで解決した。

wonderfl にも投稿したこれはプロキシを経由して Google のロゴを取ってきている。(クリックで停止)

Get Adobe Flash player

プロキシを経由すると当然読み込みには時間がかかってしまうので一応キャッシュするようにしておいた。


wonderfl の Flasher の方でこの辺りのことで煩雑な思いをしておられる方がおられましたらどうぞご利用ください。

使い方:

1. ポリシーファイルを読み込む

Security.loadPolicyFile("http://5ivestar.org/proxy/crossdomain.xml");

ちなみに LoaderContext を利用したやり方だとドメイン直下の crossdomain.xml しか読んでくれないので動かない。

2. ロード

loader = new Loader();
loader.contentLoaderInfo.addEventListener("complete", loadingComplete);
loader.load(new URLRequest("http://5ivestar.org/proxy/{取得するURL}"));

3. あとは煮るなり焼くなりご自由にどうぞ

var bitmap:BitmapData = new BitmapData(loader.width, loader.height, true, 0x00000000);
bitmap.draw(loader);

No comments

Leave a Reply

コメントを投稿する場合は下記の認証サービスのいずれかを経由してログインして下さい。

但し、認証を行うにはそのサービスのアカウントが必要です。