フルフラッシュなサイトで、Flashコンテンツが必要とするサイズ以上にブラウザの領域が大きい場合に、Flashコンテンツを自動的にスケーリングしたい時がある。みんなどうやってるのかなっと思っていろいろリサーチ、jQueryやPrototypeなんかで処理してるひともいれば、javascriptのライブラリ利用してる人もいる模様。

javascriptのライブラリはswffitswfforcesizeなどがある。両者ともSwfObjectと併せて使用することを前提にしている。swfforcesizeはシンプルにコンテンツサイズを最大に設定してくれるだけだが、swffitは最小サイズ、最大サイズ、リサイズ時のイベントハンドらを登録できたりとswfforcesizeよりも高機能、ドキュメントもしっかりしてる。swffitを採用しているサイトは複数あったから、結構有名なライブラリなのかな。

swffitの使いかた

swffitをダウンロードすると、サンプルがいくつか含まれているので、都合のよい物をカスタマイズして使う。ただし、サンプルはFlashのセキュリティ制限のせいでローカルファイルとしてブラウザに読み込ませると、セキュリティエラーが発生する。サンプルの動作を観たい人は、swffitのページにサンプルが掲載されているのでそちらを観るといいでしょう。
記述するjavascriptは、SWFObjectによって、Flashコンテンツを利用できる状態にした後、swffit.fit()によってリサイズする機能を追加する。

swffit.fit("flashID", minWidth, minHeight, maxWidth, maxHeight, horizontalCentered, verticalCentered );

必須なのはflashID,minWidth, minHeightの3つ、あとのパラメータは省略できる。