
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ウェブサイトで Flash が事実上...
-
パソコンのリカバリーについて
-
自分でチラシを作りたいです!...
-
potplayerについて質問です
-
動画再生ページ
-
Giam
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FLASHでコンパイルエラーが出て...
-
ActionScript3.0でスクロールバー
-
XML内のタグの内容を、変数に出...
-
AS3.0 タグ内の文字列を置換
-
スライドショーのサムネイルに...
-
DataGridでクリックされた行と...
-
PHPからFlashにXMLをそのまま渡...
-
エラー(型が一致しません。)...
-
VB6でユーザー定義型がNothing...
-
LRESULTとHRESULT
-
c++ cmathとmath.h
-
TextChangeイベントが発生しない
-
配列の要素番号を取得するには?
-
VBでボタンを押すと画像をラン...
-
変な質問ですみません、n番目の...
-
時間差を取得結果を求めるには
-
#define 文
-
getTimer() について
-
PHP requireの後にJS実行
-
重複しない乱数の生成
おすすめ情報