使用OSとFlashのVerは以下です。
OS:Windows2000Pro
Flash:FlashMX2004
FlashMX2004でスライドショーを作ろうと思っています。
以下のような仕様にしようと計画しています。
1.一定時間毎に画像が切り替わる
2.画像の切り替えはクロスフェード(というのでしょうか、一方の画像が消えていくと同時に次の画像が浮かび上がってくる)
3.画像数は1500枚
画像数が数枚ならあらかじめ画像を読み込んでおいて順次表示すればいいとおもいましたが、画像数が膨大であるためその方法は使えそうにありません。
ディレクトリに画像をまとめて置いておき、実行中に読み込む、、、という方法がいいのかなと思いましたが、そんなことはできるのでしょうか。また、簡単な例(できれば上記仕様を満たすようなやつ)を教えていただければありがたいです。
よろしくおねがいします。
No.2ベストアンサー
- 回答日時:
スクリプトはだいぶん前からできていたのですが,
その説明が… 難しくて… 。
うまく説明できないので,順を追って書いています。
モーショントゥイーンで,ムービークリップのアルファを変えて,
そのムービークリップに外部JPEGを読み込む方法も少しは考えてみましたが,
ループするところがむずかしいので,全部スクリプトにしました。
1つの参考例として見てみてください。
1500枚ですね。すごい数…。
まず,外部のJPEGの名前ですが,
任意の名前だとそれ用のデータベースを作らないとならないので,
それだけですごい行になります。
なので,
1.jpg 2.jpg 3.jpg ~ 1500.jpg
のように数字で連番にします。
Flashですが,メインムービーを3レイヤーにします。
□レイヤー3 筆・・|●| ←スクリプトMC
□レイヤー2 筆・・|●| ←インスタンス名:MCb
□レイヤー1 筆・・|●| ←インスタンス名:MCa
そして,各レイヤーには,
スクリプトを書くMC(ムービークリップ)
インスタンス名 MCb というMC
インスタンス名 MCa というMC
を作ってそれぞれのレイヤーのステージ上に配置します。
すべてとりあえず1cm四方くらいの小さめのMCで良いです。
四角い塗りを各レイヤーに書いて,それぞれムービークリップシンボルにしてください。
赤・青・緑 のように極端な色にしておいたほうが作成のときは区別しやすいです。
「MCa」 と 「MCb」 はレイヤーが違うだけで,ステージの左上の方の同じ座標が良いです。
「スクリプトを書くMC」 インスタンス名は不要です。ステージ外でも何でも良いです適当に置いてください。
それで,「スクリプトを書くMC」に以下のように書くと,「MCa」 と 「MCb」 が交互に入れ替わると思います。
※ スクリプトの各行の前には,インデントを付けるため,
全角空白文字を入れています。
コピペをする場合は,
全角空白を ""(何もなし) で置換するなどして,
全角空白を削除してください。
-------------------------------------
onClipEvent (load) {
//アルファの変化の速さの設定(※1↓)
spd_alp = 5;
//MCa のアルファを 101 に設定(※2↓)
_root.MCa._alpha = 101;
//MCb のアルファを -1 に設定(※2↓)
_root.MCb._alpha = -1;
}
//以下,1フレーム進む時間ごとに1回実行
onClipEvent (enterFrame) {
//MCa のアルファが 0 より小さいとき
if (_root.MCa._alpha<0) {
//変数 MCa_alp を spd_alp( 5 )を代入
MCa_alp = spd_alp;
//変数 MCb_alp に -spd_alp( -5 )を代入
MCb_alp = -spd_alp;
//MCa のアルファが 100 より大きいとき
} else if (_root.MCa._alpha>100) {
//変数 MCa_alp を -spd_alp( -5 )を代入
MCa_alp = -spd_alp;
//変数 MCb_alp に spd_alp( 5 )を代入
MCb_alp = spd_alp;
}
//MCa のアルファを MCa_alp ずつ加算
_root.MCa._alpha += MCa_alp;
//MCb のアルファを MCa_alp ずつ加算
_root.MCb._alpha += MCb_alp;
}
-------------------------------------
※1
5 は可変です。好みに応じて変えてください。
※2
ちょっと邪道かもしれませんが,
MCa._alpha<0 などを一瞬だけ成立させるために
わざと_alphaの値を 101 とか -1 とかにしています。
上のスクリプトを土台として,
外部JPEGを 1.jpg~1500.jpg を順次読み込ませる部分を付け加えて行くと以下のようになります。
※ 同じく。コピペをする場合は,全角空白を削除してください。
----------------------------------------
onClipEvent (load) {
//アルファの変化の速さの設定(※1↑)
spd_alp = 5;
//静止時間の設定(※3↓)
stop_time = 12;
//写真の枚数を記入(※4↓)
photo_all = 5;
//変数 phot_no を初期化
phot_no = 1;
//変数 count1・2の初期化
count1 = 0;
count2 = 0;
_root.MCa._alpha = 101;
_root.MCb._alpha = -1;
//MCaに 1.jpg を読み込む
_root.MCa.loadMovie(phot_no+".jpg");
}
onClipEvent (enterFrame) {
//MCa のアルファが 0 より小さくなったとき
if (_root.MCa._alpha<0) {
_root.MCa._alpha = 0;
_root.MCb._alpha = 100;
MCa_alp = MCb_alp=0;
//変数 i の初期化
i = 1;
//phot_noを 1 増やす
phot_no++;
//もしphot_noが全枚数に達したら
if (phot_no>photo_all) {
//phot_noを 1 に戻す
phot_no = 1;
}
//MCa に phot_no.jpg を読み込む
_root.MCa.loadMovie(phot_no+".jpg");
//MCa のアルファが 100 より大きくなったとき
} else if (_root.MCa._alpha>100) {
_root.MCa._alpha = 100;
_root.MCb._alpha = 0;
MCa_alp = MCb_alp=0;
//変数 i の初期化
j = 1;
phot_no++;
if (phot_no>photo_all) {
phot_no = 1;
}
//MCb に phot_no.jpg を読み込む
_root.MCb.loadMovie(phot_no+".jpg");
}
//count1 が stop_time(12)以上になれば
if (count1>=stop_time) {
i = 0;
count1 = 0;
//アルファの変化の入れ替え
MCa_alp = spd_alp;
MCb_alp = -spd_alp;
//count2 が stop_time(12)以上になれば
} else if (count2>=stop_time) {
j = 0;
count2 = 0;
//アルファの変化の入れ替え
MCa_alp = -spd_alp;
MCb_alp = spd_alp;
}
//以下は常に実行
_root.MCa._alpha += MCa_alp;
_root.MCb._alpha += MCb_alp;
count1 += i;
count2 += j;
}
----------------------------------------
※3
アルファが100である時間を設定してください。
stop_time = 12; にしてありますが,これは
デフォルトのフレームレートで約1秒です。
※4
photo_all = 5; にしていますが,
これを 1500 などにしてください。
上のスクリプトを試すのにJPEGを5枚用意して
実験したので5になっているだけです。
上のスクリプトを,自分なりにつくり変えると,
考えられていることができると思います。
しかし!
上のままでは,そのページに来た人は,いつも
1500枚あるうちの 1.jpg から見ることになります!!
ですから,ここをどうするか考えなければなりません。
次の例は 10.jpg まで見た人が次訪問したときは
11.jpg から見せる方法です。
これには,Shared Objectを使います。参考↓。
http://www.macromedia.com/jp/support/flash/ts/do …
10.jpg まで見たことを sol ファイル(JavaScriptのCookieに似たもの)に記憶させて置いて,
次回は,11.jpgから見せれば良いわけです。
ランダムで表示させるか,Shared Objectにするかどちらにしようか迷いましたが,
この例ではShared Objectにしておきます。
上のスクリプトにShared Objectの部分を付け足して全部書くと以下のようになります。
※ 同じく。コピペをする場合は,全角空白を削除してください。
-----------------------------------------
onClipEvent (load) {
spd_alp = 5;
stop_time = 12;
photo_all = 5;
count1 = 0;
count2 = 0;
//★ローカルのsolファイルを読みに行く
sol_count = SharedObject.getLocal("mySol");
//もしsolファイルにphoto_countがあれば
if (sol_count.data.photo_count != undefind) {
phot_no = sol_count.data.photo_count;
//もしsolファイルにphoto_countがなければ
} else {
phot_no = 1;
}
_root.MCa._alpha = 101;
_root.MCb._alpha = -1;
_root.MCa.loadMovie(phot_no+".jpg");
}
onClipEvent (enterFrame) {
if (_root.MCa._alpha<0) {
_root.MCa._alpha = 0;
_root.MCb._alpha = 100;
MCa_alp = MCb_alp=0;
i = 1;
phot_no++;
if (phot_no>photo_all) {
phot_no = 1;
}
_root.MCa.loadMovie(phot_no+".jpg");
sol_count.data.photo_count = phot_no-1;
} else if (_root.MCa._alpha>100) {
_root.MCa._alpha = 100;
_root.MCb._alpha = 0;
MCa_alp = MCb_alp=0;
j = 1;
phot_no++;
if (phot_no>photo_all) {
phot_no = 1;
}
_root.MCb.loadMovie(phot_no+".jpg");
sol_count.data.photo_count = phot_no-1;
}
if (count1>=stop_time) {
i = 0;
count1 = 0;
MCa_alp = spd_alp;
MCb_alp = -spd_alp;
} else if (count2>=stop_time) {
j = 0;
count2 = 0;
MCa_alp = -spd_alp;
MCb_alp = spd_alp;
}
_root.MCa._alpha += MCa_alp;
_root.MCb._alpha += MCb_alp;
count1 += i;
count2 += j;
}
-------------------------------------------
という具合になります。
>> 動的にファイルを読み込むようなスライドショーを作りたい。
Flash自体は大別すると,動的側面を持った,静的ファイルです。
今見ている,ココ(教えてサイト)や掲示板,チャットのように,
見る状況によって変わったり,生成されたりするのが動的ファイル(サイト)です。
http://seodictionary.ifdef.jp/douteki/
CGIやPHPと組み合わせれば,動的になります。
また,上のようにShared Objectを使えば,完全とは言えませんが動的な側面を持つことができます(?)。
まぁ一応,動的にファイルを読み込んではいます。
ランダムや,時刻によって表示を変えるのも,動的と言えば動的かもしれません。
1500枚を読み込ませる方法は他にもたくさんあると思います。
1つの方法例として書きました。
No.1
- 回答日時:
こんにちは。
jpegかgifであればloadMovieすればできます。
クロスフェードについてはloadMovieのターゲットとなるムービークリップを2つ用意して、そのターゲットに対して交互に画像をロードすれば良いと思います。(前面のムービークリップのアルファをフェードさせて。前面0%(透明)の時に前面にロード、前面100%の時は背面のターゲットにロードする)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS トリミングで表示した画像をクリックで元どおりにしたい 3 2022/12/16 18:49
- WordPress(ワードプレス) ホームページの画像が入れ替わらない 3 2022/12/24 16:00
- HTML・CSS 画像が分割されて切り替わる、ループアニメーションが作りたい 7 2023/05/27 17:12
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Windows 10 フォルダ内の全ての画像を矢印キーでスライドできるようにしたい 1 2022/10/21 12:53
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Excel(エクセル) エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法 1 2023/04/19 00:19
- Excel(エクセル) EXCELマクロでandroidタブレットから取りんだJPEGファイルをうまくセルに貼り付けられない 2 2022/07/31 15:03
- Windows 8 Route Generator の使い方 1 2023/05/03 00:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
else if文の順序を変えることに...
-
ムービークリップを動かす
-
pythonの画像の貼り付けについて
-
Pythonのtkinterについて
-
五芒星は、悪魔崇拝とどういう...
-
シンボル化解除の方法
-
テキストボックスにセルの値を...
-
pdfのテキスト全文コピー、テキ...
-
VBScriptでMsgBoxのYesNoボック...
-
文字をスクロールできるGIFアプリ
-
プログラミング、アーキテクチ...
-
【VB.NET】別Formのボタンが押...
-
YOASOBI
-
flash のステージの背景色
-
マウス自体の移動量の取得
-
UWSCのBTN関数について。
-
photoshopで書いた四角の枠の中...
-
VS2008 C# ボタンのテキストを...
-
POIでのテキストボックス作成に...
-
DataTableの件数を取得したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python ボタンを押すと複数の関...
-
else if文の順序を変えることに...
-
PYTHONのtkinterについて
-
Pythonのtkinterについて
-
四乗根を英語で言うと・・・
-
pythonの画像の貼り付けについて
-
SNMPの標準MIBについて
-
PythonでSetWindowPosを使うに...
-
pythonのグローバル変数
-
関数をプロパティとして代入する際
-
ボタンの上にマウスを置くと虫...
-
[FlashMX2004]動的にファイルを...
-
パーセントで配置したフラッシ...
-
ADに参加していないPCからADサ...
-
メニュースクロール
-
Flashの表示サイズを動的に変更...
-
スライドショーのフェードイン...
-
レイヤーに配置されたムービー...
-
swfがきちんと動作しない!
-
フルウィンドウのFlash Firefox...
おすすめ情報