タグ別アーカイブ: Flash

Firefox3.6使用時に100%表示のフルフラッシュサイトで常にスクロールバーが表示されてしまう場合の対処方法

Firefox3.6にアップデートしたら、100%表示のフルフラッシュサイトで、ウィンドウサイズが指定した最小サイズ以下になっていないのに、常にスクロールバーが表示されてしまう現象が発生。Firefox3.5では問題なく表示できていたし、他のブラウザでも正常に表示できるようなので原因を調べてみたら、swffitが問題だったみたいです。swffitのバージョンを2.1から2.3.3(2010年1月18日リリース)にアップデートしてみたところ、スクロールバーは消えて正常に表示できるようになりました。

Progressionで作成したFlashコンテンツがFirefoxで表示できない場合の対処方法

Progressionで作成したFlashコンテンツが、Firefoxだけ表示できなく困っていたのですが、Page Saverというアドオンが原因だったみたいです。Page Saverを外してみたところFlashコンテンツが正常に表示できました。根本的な原因はよくわからないし、ProgressionとPage Saverの問題ということでもない気もしますが、念のためそれぞれのバージョンもメモしておきます。

[AS2]FlashでSWFや画像などを外部から読み込む際にキャッシュさせない

FlashコンテンツでSWFや画像データを外部から読み込む際に、ブラウザでキャッシュさせない方法をメモ。頻繁に更新する必要のあるFlashコンテンツでは、更新した内容が反映されない可能性あるので、キャッシュ対策が必要。

具体的には、読み込みたいデータのパスに「?=現時刻」をプラスしてあげて、常に別のデータとして読み込ませる。例えば、CASA FrameworkのMediaLoadを使用して、test.jpgを外部から読み込む場合のキャッシュ対策はこんな感じ(ほぼCASAのサンプルそのままです)。

this.stop();
Stage.align = "TL"; 
Stage.scaleMode = "noScale";

import org.casaframework.load.media.MediaLoad;

this.createEmptyMovieClip("loadZone_mc", this.getNextHighestDepth());

function onImageLoadProgress(sender:MediaLoad, bytesLoaded:Number, bytesTotal:Number):Void {
    trace(bytesLoaded + "/" + bytesTotal + " bytes have been loaded into " + sender.getMovieClip());
}

var nowDate:Date = new Date();//現時刻を取得してnowDateに設定
var mediaLoad:MediaLoad = new MediaLoad(this.loadZone_mc, "test.jpg" + "?=" + nowDate);
this.mediaLoad.addEventObserver(this, MediaLoad.EVENT_LOAD_PROGRESS, "onImageLoadProgress");
this.mediaLoad.start();

現時刻の部分は、ユニークな値であれば問題ないと思うので、乱数など他の値でもでも問題ないと思われます。ちなみに画像データだけでなく、swfやxmlなどでも同じ方法でキャッシュ対策可能。

【参考にさせて頂いたサイト】

[AS2]Flickr API経由で取得した画像がFlashで表示されない

Flashで、Flickr API経由で画像を表示するテストをしてみたら、ローカル環境では問題なく表示されるのに、サーバにアップロードしたら何も表示されない。いろいろ検証してみたところ、Flickrから取得した画像にスムージングをかけようとすると、何も表示されない模様。Flash Player8以上で、外部画像を読み込んだ場合、シャギーが出てギザギザの画像になってしまうので、スムージングを適用したかったのだけど、なかなかうまくいかなかったので、解決方法をメモ。スムージングについては、以前書いた、「[AS2]Flashで外部から読み込んだ画像データにスムージングを適用する」を参照。

System.security.loadPolicyFile("http://api.flickr.com/crossdomain.xml");
System.security.loadPolicyFile("http://farm1.static.flickr.com/crossdomain.xml");
System.security.loadPolicyFile("http://farm2.static.flickr.com/crossdomain.xml");
System.security.loadPolicyFile("http://farm3.static.flickr.com/crossdomain.xml");
System.security.loadPolicyFile("http://farm4.static.flickr.com/crossdomain.xml");

上記のスクリプトを追加すると、スムージングを適用しても問題なく表示可能でした。クロスドメインとかセキュリティーの問題と思われます。

【参考にさせて頂いたサイト】
鮭とプログラムとかサン「スライドショー 2

Webカメラを使用するFlashサイトでiSightが動作しない

Webカメラを使用するFlashサイトで、MacのiSightが動作しない場合の解決方法。OSのクリーンインストールとか、Flash Playerを何度も入れ直したりしてたら、設定方法を忘れてしまったのでメモ。

Flash Playerの「カメラとマイクへのアクセス」というダイアログで、[許可]を選択しても何も表示されないので、右クリックでFlash Playerの設定を開く。右下にあるWebカメラのアイコンをクリックして、「USB Video Class Video」を選択すれば、iSightが動くはず。