- ベストアンサー
写真の出し入れを簡素に表現したい
- FLASH初心者のため、写真の出し入れをスマートに表現したい方法についてアドバイスをお願いします。
- 6枚の写真を順番にフェードインさせて、画面上に1枚をまとめて表示するムービーを作成したいです。写真は縦のトリミング写真が多く、下から上へ、上から下へという風に動きを付けたいです。
- 現在の作成方法では、モーショントゥイーンを使い、レイヤーごとに写真の入れ替えを行っていますが、少し修正する際に手間がかかりますし、データも重くなってしまいます。より軽く、変更がしやすい作成方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
お早うございます。 >全部のレイヤーを少しずつずらしていくという、なんとも時間のかかる作業を繰り返しています。 と、いうことで、私の場合ActionScriptで次のようにしています。 全て同じ動きのムービークリップなら色々なスライドショーを自動的に行う方法が紹介もされていますが、それぞれの写真をそれぞれ好み応じて表現したいということで作成してみました。 いかがでしょうか。 1.挿入-新規シンボル インスタンス名「MC」を作成 内容は矩形でも作成しておく。これは、見えるようにするためでなんでもかまわない。そして、ステージの外側に配置する。 ダイナミックテキストボックス、インスタンス名「TboxTitle」を作成し、適当な位置に配置。タイトルを表示しないのならステージ外へでも配置する。 2.表示したい写真のムービークリップを作成する。そのムービークリップ内で好みのきをタイムラインに作成する。 インスタンス名は自由、下記ActionScriptでは、「MCa」「MCb」「MCc」としている。 3.MCのActionScriptに次を記載 配列のフィールドは、 ムービークリップ名、表示時間、タイトル です。 onClipEvent (load) { Cnt=0; OverVTime=10; //重なり時間 CntMod=0; MCAry = new Array(); MCAry[0] = new Array("MCa", 60,"aaaaa"); MCAry[1] = new Array("MCb", 80,"bbbbbbbb"); MCAry[2] = new Array("MCc", 60,"ccc"); AryLen=MCAry.length; TtlTime=0; for(i=0;i<AryLen;i++){ TtlTime=TtlTime+MCAry[i][1]-OverVTime; } AryNo=0; OldAryNo=AryLen-1; NextAttachCnt=0; CrntEraseCnt=OverVTime; } //以下,1フレーム進む時間ごとに1回実行 onClipEvent (enterFrame) { CntMod=Cnt%TtlTime; _root.Dtext.text="経過時間="+CntMod; //----- ムービーをアタッチ if(CntMod==NextAttachCnt){ _root.attachMovie(MCAry[AryNo][0],"MC"+AryNo,AryNo); _root.TboxTitle.text=MCAry[AryNo][2] NextAttachCnt=(NextAttachCnt+MCAry[AryNo][1]-OverVTime)%TtlTime; ++AryNo; AryNo=AryNo%AryLen; } //----- ムービーを削除 if(CntMod==CrntEraseCnt){ OldAryNo=(AryLen+AryNo-2)%AryLen; _root.DebugText.text="削除した "+OldAryNo; _root["MC"+OldAryNo].removeMovieClip(); CrntEraseCnt=(CrntEraseCnt+MCAry[AryNo][1]-OverVTime)%TtlTime; } ++Cnt; }
お礼
rqg2010様 こんにちは。 早速のご回答に感謝いたします。 また、ご丁寧にご教授頂き誠にありがとうございます! 現在、ご回答頂いた方法にて挑戦中でして。。。 もし不明点あればまたご質問させていただければ幸いです。 なかなか難しいです。。。