Flash ASを使った画像フェードの方法について

Flash ActionScriptを使った画像フェードの方法を教えてください つい最近、興味をもってFlashを始め...

BlurFiltan さんからの 回答

  • 2011/04/23 14:19
  • 回答No.1
BlurFiltan

ベストアンサー率 91% (1611/1754)

結局,
「ASの方法も,タイムラインの方法も,両方ともわからない。」という欲張ったご質問に見えますが。。。

字数も限られていますから手短に回答します。

まずタイムラインの方法は
添付した【下の図】↓のようにするのが普通です。


=== === ===

ActionScriptでやる場合も
基本的には同じことをさせるんです。
ですから
その同じことさせるイメージが思い浮かばなければどちらともできないということになります。

ActionScriptでやる場合はタイムラインを動かすとまずいことが多いです。
ですから,
画像1~3 は フレーム1 なら フレーム1 だけのような単フレームに配置します。

画像1~3 はそれぞれ別々の MC(ムービークリップ) に変換して
各MCには例えば「gazou1」「gazou2」「gazou3」というインスタンス名をつけて
その3つのMCが重なり合うように配置します。

それら3つのMCが存在するフレーム(フレーム1 なら フレーム1)に書くスクリプト例です↓。

//-------------------------------------------
//Tween クラスと easing クラスのインポート
import fl.transitions.Tween;
import fl.transitions.easing.*;

//このフレームで一応停止
stop();

//gazou○ の最後の番号を登録
var last_num:int = 3;

//変数iを1~last_numまで1ずつ加算しながらループ
for (var i:int=1; i<=last_num; i++) {
//初期状態で gazou○ を全て透明にする
this["gazou" + i].alpha = 0;
}

//カウント用変数を用意
var cnt:int = 1;

//関数 fadeinMC の定義
function fadeinMC(e:TimerEvent):void {
//gazou○ を最高深度に移動させる
this.setChildIndex(this["gazou" + cnt], this.numChildren-1);
//
//gazou○ の alpha を 0 から 1 に 2 秒で変化させる Tween を設定
var myTween:Tween = new Tween(this["gazou" + cnt],"alpha",None.easeIn,0,1,2,true);
//
//もし cnt の値が last_num 未満であれば
if (cnt < last_num) {
//cnt に 1 を加算
cnt++;
} else {
//それ以外は 1 に戻す
cnt = 1;
}
}

//関数 fadeinMC を即実行
fadeinMC(null);

//5000ミリ秒(5秒)間隔で実行する Timer インスタンスを作成
var myTimer:Timer = new Timer(5000,0);

//指定ミリ秒おきに関数 fadeinMC を実行
myTimer.addEventListener(TimerEvent.TIMER, fadeinMC);

//タイマースタート
myTimer.start();
//-------------------------------------------
 


「定期的に表示させるMCの 深度(表示順) を上にして
アルファを 0から1 (0%から100%) に トゥイーン で変える。」

どちらともやっている内容は同じです。


 
お礼コメント
its_a_sony

お礼率 100% (12/12)

お返事が遅くなりまして申し訳ございません。

初心者の私に親切にご説明いただきありがとうございました。
タイムラインについては説明用の画像が間違っていました。申し訳ありませんでした。
(タイムラインについては一応理解しているつもりです(たぶん・・・))

あらゆる手を尽くして頑張っているのですが、どうしてもうまくいかず、現在試行錯誤を繰り返しています。
このスクリプトをどこに記述すればいいのか?というありさまでして(どこに書いてもシンタックスエラー?
というものが続出します)どうも基礎知識がなさすぎるようです。

もう少し勉強する必要がありそうです。
また質問させていただくかと思います。もしよければまたご相談に乗っていただけると幸いです。
本当にありがとうございました。
投稿日時:2011/05/14 15:08
この回答にこう思った!同じようなことあった!感想や体験を書こう!
この回答にはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
  • Flash ActionScriptで、画像に保存したい! Flash

    Flashプレイヤーで再生中のFlashアプリで、 写真を取り込んだり、図形を書いたり、文字を配置したりするFlashアプリを作成することになったのですが、 最後に作成したイメージの保存を、ActionScriptで行いたいのですが、何か方法がないでしょうか? 開発ツールのFlashでイメージの保存する方法ではなく、 Flashプレイヤーで再生中のFlashアプリの機能として 保存ボタンのプログラム方法が知りたいのです。 画像のフォーマットは、JPEGでもGIFでもBitmapでも構いません。 バージョンはFlash8で、ActionScriptは2.0です。 よろしくお願いします。...

  • Flash ActionScriptで画像の読み込み Flash

    Flashでトランプゲームを作ろうと思っているのですが、カード一つ一つシンボルに入れると容量が大きくなるので、画像を読み込もうと思いました。 が、読み込み方法が良くわかりません。 ActionScriptならこういうのがあると思ってネットで色々調べてみたのですが、しっくりとしたサンプルがなかったのでここに書き込みました。 使っているソフトはAdobe Flash CS3 Professionalです。...

  • Flash3.0 ループ再生について Flash

    質問主は・・・ *FlashCS5を、感覚+Flashサイトを見てほとんど知識のないまま使っております。 *その上Actionscriptが苦手でほとんど手をつけておりません。 *感覚的には例えば「あるボタンを押すとURLを別窓で開く」程度のものしか作れません。 質問は以下のとおりです。 A → B → C と画像を切り替えて、ループ再生させたいのですが、 ABCともに、再生終了時には、ゆっくりとアルファが100→0になるようにしています。 そのアルファが100の時点から、次の画像が始まるようにかぶせています。 A→→→→100→0        B→→→→100→0              C→→→→100→0 わかりにくいですが図のようなイメージです。 http://www.hitachi.co.jp/ (この日立のサイト様を手本にしています。) しかしまぁ当たり前なのですが、ループ再生をするとなると、Cの終りがAの頭にかぶっているようにならないのです。 A→→→→100→0        B→→→→100→0              C→→→→100→0                     A→→→→100→0                            B・・・・・・・・・・・ 上図のようにしたいのですが・・・ Actionscriptは使っていないのですが、やはり使わないと不可能なのでしょうか? となるとgotoandplayなどを使うのでしょうか? そのあたりもよくわかっておらず・・・ 詳しく答えて頂けると嬉しいです。 また、Actionscriptなどのプログラム言語は、みなさんどうやって勉強されたのでしょうか? 構造を理解するのが本当に苦手で・・・とっつきやすい方法があれば、それも教えていただけると嬉しいです。 ちなみに書籍を読んで只今勉強しております。『速習WebデザインActionscript』 林拓也さん著 3/4ほど実践しながら読み進めていますが、なぜか身についてる感じがしません(泣 最後に、過去の質問ももちろん見てみました。ですがどれも微妙に違うのです。 微妙に違うと、その変え方がわからないため自分では解決できなかったので、質問させて頂きます。 長文失礼しました。どうぞ宜しくお願い致します。...

  • ループ再生のflashをタイムラインの途中から再生 Flash

    AdobeのFlashを使って他人の作ったflashの編集をする事になったのですが、ActionScriptについての知識がほとんどなく困っています。 アルファの白い画面→''画像が表示''→アルファの白い画面→ループ、頭に戻る この動きの繰り返しの中で画像が1→2→3と変化します。 (タイムラインの1フレーム目で画像が切り替わるようになっています。) asの部分にはこう書かれています -------- if( loop_cnt == undefined || loop_cnt>mcimg._totalframes) {loop_cnt = 1;} --------- (内容と無関係だったらすみません><解読は出来ていない状態です) このflashの始まりを、上記の''画像が表示''の部分から始まるように変更したいです。 (flashを途中から再生させる→ループで頭に戻る→その後はそのまま全てのタイムラインをループ) ActionScriptでこのような命令をする方法があれば教えて頂きたいのですが・・・ 投稿も初めてなので記述に至らない点が多いかと思いますが、何卒よろしくお願い致します。...

  • Flashの画像と重なるテキストをひとつのJPGに変換する方法 Flash

    ActionScriptの初心者です。下記のことをやろうとして困っています。どなたか、御助言をお願いします。 【やりたいこと】読み込んだ画像に、createTextFieldで動的に作成したテキストを重ねてひとつのJPGにしたい。(グリーティングのようなイメージ。利用者が好きに書き込んだコメントを埋め込んだJPGを作成したい。) ネットで調べて、Flash側で bmpSnap.draw(_root.画像領域名); bmpSnap.getPixel(x, y);で、画像部分を変換し・・ PHP側で、受信したデータをJPG変換することは、何とかできました。 しかし、入力したTextFieldを一緒に変換することができず困っています。画像領域とテキストを一緒にマージし画像変換するにはどうすれば良いでしょうか? Flashの基本的な勉強不足だと思いますが、申し訳ありません。 宜しくお願い致します。...

ページ先頭へ