![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
FLASH CS3
AS2.0
まず、ここのサイトで7-04の減速しながら写真が止まるを参考にしました。http://book.mycom.co.jp/support/e5/actionscript10/
これをフレームにアクションを記述して修正しようとしたがうまく出来ず、自分のできる範囲で
次に到達しました。サムネイルには写真の表示に応じて四角い枠(インスタンス名:waku)を
移動させます。サムネイルのインスタンス名をbt1からbt4とします。
import mx.transitions.Tween;
import mx.transitions.easing.*;
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);
};
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);
};
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);
};
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);
};
今、やろうとしていることはサムネイルに50%程度のフェードをかけ、ロールオーバーした時に
100%で表示するというものです。ムービーのスタートでは左端のサムネイルに四角い枠があり
100%で表示、他3つは50%。
その方法を教えてください。
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
いつもお世話になります。
> サムネイルに50%程度のフェードをかけ
と言うのは、フェードイン・フェードアウトのフェードを指します。だから後半に書かれている
>スクリプトでの状態説明になりますが
>「50%のフェード」とはこんな感じのことでしょうか↓?
が大変参考になります。
また、同じような構文をまとめる方法も教えていただきありがとうございます。応用できるよう
勉強してまいります。
そして、オマケもわざわざ書いてくれており重ね重ね感謝いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript 正規表現について質問です。条件に合う場合はtrueを返したい 3 2022/10/06 23:02
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript gasについて 1 2022/05/31 21:51
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- その他(プログラミング・Web制作) sortの優先キーについて(スプレッドシート) 1 2023/01/17 17:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
arduino プログラムについて
-
スマホでサイトの画像を長押し→...
-
この曲はなんでしょう?
-
フラッシュゲームアーカイブ2
-
Flashは2020年にサポートが終了...
-
potplayerについて質問です
-
ボカロ動画はFlash?HTML5?
-
flash (.swf) を編集したい
-
FLASHでゲームを作っていた人は...
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マウスの基準点について
-
一定時間ごとにカウント
-
クイズ作成に関して xml形式の...
-
XML内のタグの内容を、変数に出...
-
経過日数のカウントアップ
-
サムネイルの写真にリンクをつ...
-
flash.AS3で音楽再生について
-
テキストフィールドかの色情報...
-
ActionScript3.0でスクロールバー
-
varとは
-
Objectの1番目の値がundefinedに
-
スライドショーのサムネイルに...
-
YouTubeの自作検索フォームで文...
-
FlashLite4.0について
-
csv読込
-
データバインディングで代入を...
-
ActionScript3.0のfor文の処理...
-
ActionScript2.0の変数をjs置き...
-
多重配列の検索方法
-
AS3.0 タグ内の文字列を置換
おすすめ情報