最近は久しぶりに実務でFlashを触っています。今になって「タイムラインベースのFlashムービーは読み込みの完了を待たずにストリーミング的に再生される」という、かなり基本的と思われる仕様を初めて知りました。progressHandler);gotoAndPlay(2);}}}}みたいにして、何割完了したら再生というような処理も書くことができます。これってもしかして常識でしょうか...。冷静になって考えてみると「ああ、そうかー」とも思うのですが、そもそも「読み込みが完了していないと再生されない(できない)」というのがまず頭にあったので、この仕様を知った(というか教えてもらった)時は、目からウロコでございました。うーん、どこで間違ったんでしょう...。ちなみに上記は外部SWFを読み込み・再生する場合も同様のようですが、ローカルでの確認や読み込むSWFがキャッシュに存在するなど、瞬間的に読み込みが完了する状況では、ProgressEvent.PROGRESSのハンドラでうまくMainTimelineオブジェクト(Loader.content)にアクセスできず、nullが返ってきてしまいます。イベント自体は配信されていますし、適当になんやらすれば回避は可能ですが、原因がわかっていない(というか調べていない)ので、なんとも。何かまた変な勘違いしている可能性も否定できませんけど(‘A’;)思い込みと中途半端な理解は怖いなあ、というお話でした。外部ファイルの遅延読み込みを容易にする「PreloadJS」Webコンテンツ制作において、JavaScriptで外部ファイルの読み込みを実現する機会は多々あり、そして中でも外部画像の遅延読み込みとその状況に応じたハンドリングについては、時代の流れもあって最近では特に需要が高まっていると感じます。実際、ブラウザ間の差異などの問題もあって、そのあたりをうまく実現しようとすると、結構面倒な処理が必要だったりします。先日、Webにおけるインタラクティブコンテンツの制作を強力にサポートする「CreateJS」の公式サイトが公開されました。「CreateJS」はグラフィックス、アニメーション、サウンドなどの用途に特化した各種JavaScriptライブラリやツールによって構成されていますが、その中でも個人的にまず興味を持った(今すぐ使えそうだと思った)のが、外部ファイルの読み込みを容易に実現するためのライブラリである、表題の「PreloadJS」です。「PreloadJS」はCSS、画像、JS、JSONなどなど様々なファイルの読み込みに対応しており、複数キューの管理とその一時停止/レジュームなどの便利な機能が色々と用意されいています。level2(XHR2)によるローディングと、古くからあるタグを使ったローディングを環境によって内部的に切り替えるため、XHR2対応環境では(タグによるローディングでは実現できない)読み込みのより詳細な進捗状況を取得することができます。したら他に同等の性能を持つライブラリがあるのかも知れませんが、僕はこれが初見でしたので、この仕様に特に強く惹かれました。機能自体は外部ファイルを読み込むというシンプルなものですから、使用方法も簡単。JSの基礎知識とドキュメントさえあれば迷うことは無さそうです。以下は外部画像を読み込む場合のシンプルな例。);↑PreloadJSインスタンスを作ってハンドラをセットし、loadManifest()に読み込みたい画像の配列を渡して呼び出す。画像ファイルごとにid(String)やdata(Object)といったメンバを持たせたObjectを格納すれば、各ハンドラに渡されるイベントオブジェクトからそれらの値を取得できます。);↑ファイルがひとつだけならloadFile()にURLを文字列で渡せばOKみたいです。自分自身まだ「ちょっと使ってみた」程度で、その他の細かいところなどについてはこれから把握していくところなのですが、遅延読み込みの諸問題を吸収しつつ多機能で扱いやすいAPIを提供してくれる「PrelaodJS」は自分が求めていたものに非常に近く、スピードとクオリティを求められる実務においてもとても重宝しそうだと個人的に思ったので、ありがたく使わせて頂こうと思っています。