• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:スライドショーのサムネイルにフェードをかけたい)

スライドショーのサムネイルにフェードをかけたい

このQ&Aのポイント
  • FLASH CS3とAS2.0を使用して、スライドショーのサムネイルにフェード効果を追加したいです。
  • 現在、サムネイルに50%のフェード効果をかけ、ロールオーバーした時に100%で表示されるようにしたいです。
  • 具体的な実装方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

> サムネイルに50%程度のフェードをかけ この「50%のフェード」の意味がよくわかりません。 まず思いついたのは フェードではなくてアルファ(_alpha/不透明度)ではないかということです。 「50%のアルファをかける」であれば意味がわかります。 その「50%のアルファをかける」場合の とりあえず元のスクリプトをそんなに変えないバージョンのスクリプト例です↓。 //---------------------------------------- import mx.transitions.Tween; import mx.transitions.easing.*; //bt1~bt4のアルファを変える 関数changeAlpha の定義 //(引数:アルファを100にするボタンインスタンス) function changeAlpha(btn:Button):Void { for (var i:Number = 1; i<=4; i++) { this["bt"+i]._alpha = 50; } btn._alpha = 100; } //関数changeAlpha を初回実行(引数:ボタン「bt1」) changeAlpha(bt1); bt1.onRelease = function() { var mcTween = new Tween(Photo, "_x", Regular.easeOut, Photo._x, 0, 1, true); var mcTween = new Tween(waku, "_x", Regular.easeOut, waku._x, 0, 1, true); //関数changeAlpha を実行(引数:クリックされたボタン自身) changeAlpha(this); }; bt2.onRelease = function() { var mcTween = new Tween(Photo, "_x", Regular.easeOut, Photo._x, -400, 1, true); var mcTween = new Tween(waku, "_x", Regular.easeOut, waku._x, 100, 1, true); changeAlpha(this); }; bt3.onRelease = function() { var mcTween = new Tween(Photo, "_x", Regular.easeOut, Photo._x, -800, 1, true); var mcTween = new Tween(waku, "_x", Regular.easeOut, waku._x, 200, 1, true); changeAlpha(this); }; bt4.onRelease = function() { var mcTween = new Tween(Photo, "_x", Regular.easeOut, Photo._x, -1200, 1, true); var mcTween = new Tween(waku, "_x", Regular.easeOut, waku._x, 300, 1, true); changeAlpha(this); }; //---------------------------------------- 上のスクリプトは 同じこと(お決まりのパターン)を何度も書きすぎなので 上と同じ内容をもう少しまとめると 次のように書くこともできます。 //---------------------------------------- import mx.transitions.Tween; import mx.transitions.easing.*; //bt1~bt4のアルファを変える 関数changeAlpha の定義 //(引数:アルファを100にするボタンインスタンス) function changeAlpha(btn:Button):Void { for (var i:Number = 1; i<=4; i++) { this["bt"+i]._alpha = 50; } btn._alpha = 100; } //関数changeAlpha を初回実行(引数:ボタン「bt1」) changeAlpha(bt1); //bt1~bt4に関するループ for (var i:Number = 1; i<=4; i++) { //各ボタンの 変数n に i-1 を保存しておく this["bt"+i].n = i-1; //各ボタンクリック時の動作 this["bt"+i].onRelease = function() { var mcTween = new Tween(Photo, "_x", Regular.easeOut, Photo._x, -this.n*400, 1, true); var mcTween = new Tween(waku, "_x", Regular.easeOut, waku._x, this.n*100, 1, true); //関数changeAlpha を実行(引数:クリックされたボタン自身) changeAlpha(this); }; } //---------------------------------------- 最初の話に戻ります。 > サムネイルに50%程度のフェードをかけ の解釈についてですが, 次のような意味に捉えることもできます。 スクリプトでの状態説明になりますが 「50%のフェード」とはこんな感じのことでしょうか↓? //---------------------------------------- import mx.transitions.Tween; import mx.transitions.easing.*; //bt2~bt4のアルファを50にする for (var i:Number = 2; i<=4; i++) { this["bt"+i]._alpha = 50; } //bt1~bt4に関するループ for (var i:Number = 1; i<=4; i++) { //各ボタンの 変数n に i の値を保存しておく this["bt"+i].n = i; //各ボタンクリック時の動作 this["bt"+i].onRelease = function() { var mcTween = new Tween(Photo, "_x", Regular.easeOut, Photo._x, -(this.n-1)*400, 1, true); var mcTween = new Tween(waku, "_x", Regular.easeOut, waku._x, (this.n-1)*100, 1, true); for (i=1; i<=4; i++) { if (i != this.n) { var btTween = new Tween(this._parent["bt"+i], "_alpha", Regular.easeOut, this._parent["bt"+i]._alpha, 50, 1, true); } else { var btTween = new Tween(this, "_alpha", Regular.easeOut, this._alpha, 100, 1, true); } } }; } //----------------------------------------     =========== ◎オマケ > これをフレームにアクションを記述して > 修正しようとしたがうまく出来ず、 元のファイルのムービークリップやボタン自体に書いてあるスクリプトを全部消して 4つのボタンに「bt1」~「bt4」というインスタンス名を付けた場合 _rootのフレームに書くアクションは次のようになります↓。 //---------------------------------------- var position:Number = 0; Photo.onEnterFrame = function() { this._x -= (this._x+position)/3; }; for (var i = 1; i<=4; i++) { this["bt"+i].n = i; this["bt"+i].onRelease = function() { position = Photo["p"+this.n]._x; }; } //---------------------------------------- ※「Photo」の動く先の座標指定は   「Photo」内にあるMC(p1~p4)の   各座標が使われています。 ※上記全スクリプト   Flash Player 6 以上で動作   ActionScript 2.0

x_izumin
質問者

お礼

いつもお世話になります。 > サムネイルに50%程度のフェードをかけ と言うのは、フェードイン・フェードアウトのフェードを指します。だから後半に書かれている >スクリプトでの状態説明になりますが >「50%のフェード」とはこんな感じのことでしょうか↓? が大変参考になります。 また、同じような構文をまとめる方法も教えていただきありがとうございます。応用できるよう 勉強してまいります。 そして、オマケもわざわざ書いてくれており重ね重ね感謝いたします。

関連するQ&A