- ベストアンサー
flash写真スライドショー中心点揃え方法
- flash初心者が写真スライドショーを作成する方法について教えてください。
- 写真スライドショーで写真の中心点を真ん中に揃える方法を教えてください。
- 写真スライドショーの設定で全ての写真が表示されたら自動停止する方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
まず, 外部 JPEG 読み込むために用意した2つのムービークリップ 「MCa」 と 「MCb」 に次のように書いてください。 --------------------------------- onClipEvent (load) { // この MC を「ステージ中央 - MCの幅の半分」の座標に移動 this._x = Stage.width/2-(this._width/2); // この MC を「ステージ中央 - MCの高さの半分」の座標に移動 this._y = Stage.height/2-(this._height/2); } --------------------------------- これで, どんなサイズの JPEG がロードされた場合でも, ステージ中央に読み込まれます。 JPEG(SWFも) がロードされる場合, ムービークリップの基準点を基準に写真の左上のコーナーが表示されます。 これは,仕様ですから変えるわけには行きません。 ですから, もし上のように ステージ中央 に表示させたいのでしたら, 一応ステージ中央を指示しておいて (Stage.width/2,Stage.height/2) その座標から,自分自身の幅の半分と,高さの半分を引くようにします。 次に本体のスクリプトですが, どのスクリプトに関して修正したいのかがわからなかったため, SharedObject を使わない方を修正することにしました。 最後の JPEG が読み込まれたときに止まるということは, すごい枚数の JPEG が用意されているわけではないと思ったからです。 ----------------------------------- 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; // ● 変数 i ・ j の初期化 i = 0; j = 0; // ★ 変数 flag の初期化 flag = 0; _root.MCa._alpha = 101; _root.MCb._alpha = -1; //MCaに 1.jpg を読み込む _root.MCa.loadMovie(phot_no+".jpg"); } onClipEvent (enterFrame) { // ★ flag が 0 のときだけ以下全てを実行 if (flag == 0) { //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) { // ★ flag を 1 にする flag = 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; //変数 j の初期化 j = 1; phot_no++; if (phot_no>photo_all) { // ★ flag を 1 にする flag = 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; } } ----------------------------------- ★印を付けた部分が修正した箇所です。 ●印を付けた部分は訂正です。 i と j を初期化しておかなければ, 1回目の時のみ,2.jpg のロードを飛ばしてしまいますね。 スクリプトの書き忘れミスでした。訂正いたします。
お礼
ご回答大変ありがとうございました!!できました~! 自分なりに調べて、読み込んだ画像は左上が基準点になってしまうことまではわかったのですが、具体的な対処法がわかって勉強になりました。ありがとうございます。 実は…加えて実現したいことがありましてあわせて質問させて頂きたいのですが、もしよろしければ教えてください; 読み込む画像は10枚~15枚程度で、基本的にスライドショーで見せるのですが、 「next」ボタン、「prev」ボタンを追加して、それらのボタンが押されたときにはオートプレイ(スライドショー)を止めて、ボタンを押すことでの前後送りをしたいのですが、どのように設計すれば実現可能なのでしょうか…。 あと… トップページ(これはhtml)からのリンクでそのスライドショーが始まるのですが、そのリンクの他に、トップページ(html)に各サムネイルも配置しこれもおのおのボタンとし、件のflashで任意の写真を表示させたいのです。(このときはオートプレイではなくボタンで送る) もし、もしよろしければ教えてください!どうかよろしくお願い致します。