外部API(Flickr)を試す!

2008年6月28日(土)
林 豊

クロスドメインポリシーファイル

 FlickrConnectクラスのサンプルでは画像URLをロードして並べていますが、ひと工夫加えないと「ロードはしたのに表示できない!」なんてことが起こります。この原因は画像を扱うAPI関連ではよくあることですが、原因はクロスドメインポリシーファイルが読まれていないために起こります。

 クロスドメインポリシーファイルとは、swfファイルがほかのサーバからのファイルを読む場合に必要になるxmlファイルです。crossdomain.xmlというファイルがそれにあたり、Flickrなら「http://api.flickr.com/crossdomain.xmlhttp://api.flickr.com/crossdomain.xml)」がそれにあたります。このようにcrossdomain.xmlはサーバのディレクトリ直下にあることが一般的で、crossdomain.xmlに記述された許可アドレスの下でファイルが扱えるようになっています。

 LoaderContextクラスを用いると、クロスドメインポリシーファイルをロードしてから目的のファイルをロードするようになります。Flickrでは、どのサーバからでも許可されるようにワイルドカードで指定されているので、クロスドメインポリシーファイルをロードできればファイルが扱えるようになります。

 方法はLoaderクラスでロードするときに、下記のように第2パラメーターにLoaderContextオブジェクトを入れてあげるだけです。

loader.load(request, new LoaderContext(true));

 コンストラクタにtrueを入れてcheckPolicyFileのプロパティをtrueにしないと、クロスドメインポリシーファイルをロードしてくれませんので注意してください。

 実際に動きましたでしょうか。今回のAPIを使えば、さまざまなこと可能です。例えば、「FlickrAPIsanple(http://www.moonyworks.com/ti_sample/)」のサイトでは、実際に今回紹介したAPIを用いています。ぜひ、一度試してみてください。

今回のまとめ

 FlickrAPIは、数あるAPIの中でも参考資料が多いのでわかりやすい部類に入ります。言葉は英語ですが、APIに慣れるにはちょうど良いと思います。

 Flickrはほかにも検索だけではなく、画像を自分のアカウントでアップロードしたりとさまざまな機能がありこれらを使うとより面白くなるでしょう。いろいろさわってみましょう。

 今回はただつなげるだけではなく、クラスの概念をもとに全体から機能を洗い出してクラス設計という手順を踏んで、FlickrAPIとの通信を専門に行うクラスを作ってみようという流れで解説してみました。

 今回作ったようなクラスライブラリを普段から作りためてあればそれだけを使うことでより早く、正確で、管理が楽で、修正も容易なコンテンツ制作が可能になります。

 それぞれ違う機能を持ったクラスの集合が、それぞれ仕事をこなして1つのコンテンツを作り上げることが、オブジェクト指向の基本であり、ActionScript3.0でさらに強力になった武器でもあります。

 ActionScript3.0をおぼえるなら、何でもいいのでクラスライブラリを作ろう!普通に書くよりもより早く理解できますよ!

有限会社ムーニーワークス
有限会社ムーニーワークス 代表取締役。大学卒業後、医療系会社情報企画室にてCD-ROM、Web、ストリーミングなどのマルチメディアコンテンツの制作を担当。その後フリーランスのWebディレクター/デザイナーとして独立し、2001年(有)ムーニーワークス設立。デジタルハリウッドスクール講師、デジタルハリウッド大学院客員教授、明治大学院兼任講師。有限会社ムーニーワークス:http://www.moonyworks.com/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています