アプリ版:「スタンプのみでお礼する」機能のリリースについて

質問させてください。

ボタンを押した後違うMCが読み込まれてから現在のMCが3~5秒後に消えるという動作をしたいのですがいまいちわかりません・・・

知っている方がいたらぜひ教えて欲しいので宜しくお願いします。

A 回答 (1件)

基本情報が少なすぎてわからないことだらけですが,


Flash MX 以上をお持ちの場合は,
setInterval 関数を使って,
ムービークリップの _visible プロパティを false にすれば良いと思います。


---まず消すだけの場合---

_root にある,インスタンス名 A というムービークリップを消したい場合,
ボタンのスクリプトは,こうなります↓。

-------------------------------
on (release) {
_root.A._visible = false;
}
-------------------------------

これだと,
クリックしたとたんに インスタンス名 A というムービークリップが消えてしまいます。


---次に3秒後に消す場合---

_root にある,インスタンス名 A というムービークリップを3秒後に消したい場合,
ボタンのスクリプトは,こうなります↓。

-------------------------------
on (release) {
myID = setInterval(function () {
_root.A._visible = false;
clearInterval(myID);
}, 3000);
}
-------------------------------

setInterval関数の構文は次のような形を使っています。


<ID名> = setInterval(function () {
<ステートメント>;
(clearInterval(<ID名>);)
}, <実行間隔(ミリ秒)>);


ステートメント,この場合,_root.A._visible = false; を
3000ミリ秒後(3秒後)に実行します。
ただし,
setInterval関数は,そのまま放置しておくと,
3000ミリ秒ごとに同じ動作をくりかえすので,
clearInterval(myID);
でこの setInterval関数 をクリアしています。
これで,1度きりの実行になります。


それ以上は基本情報が少なすぎて,
場合によって様々な回答が考えられるので,的を射た回答はできません。
もっと詳細な回答が必要である場合は,次の点を考慮して補足してください。




======================

お持ちの Flash 作成ソフトのバージョン,
または,パブリッシュしたい SWF の Flash Player のバージョンは何でしょうか?
setInterval関数 は Flash MX 以降でないと使えません。
それ以下の場合は,他の方法を考えなければなりません。
バージョンがわからないと分岐が多くなります。



また,
> 違うMCが読み込まれてから
この意味がわかりません。

---分岐1---

> 違うMCが読み込まれてから
と言うのは,
「違う SWF ファイルが MC に読み込まれてから」と解釈してよろしいのでしょうか?


また,この場合,
> MCが読み込まれてから現在のMCが3~5秒後に消える
これもよくわかりません。

A というムービークリップがあったとして,
その A が現在見えているムービークリップで,
その A に MC(SWF?)を読み込んで,
その数秒後に,今見えている A を消して新たな MC(SWF?) を表示させたいということでしょうか?

それとも,
A というムービークリップがあったとして,
その A が現在見えているムービークリップで,
それとは別の B というムービークリップにMC(SWF?)を読み込んで,
その数秒後に,B とは別の A を消したいということでしょうか?


また,この 分岐1 である場合,
現在は,loadMovie で読み込んでいるのか,
MovieClipLoaderクラス のメソッドで読み込んでいるのか,
その辺もできれば書いてください。



---分岐2---

> 違うMCが読み込まれてから
と言うのは,
A というムービークリップがすでに表示されていて,
その状態のときに A とは違う B というムービークリップが表示されるということでしょうか?
つまり「読み込まれてから」 というより 「表示されてから」 という意味でしょうか。

また,この場合,
A も B も同じ階層(_root なら _root)に置いてあるのでしょうか。



=== より上の回答で不十分な場合は,
以上の点を考慮して補足してください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
まだ、不慣れなもので、説明足りなさ過ぎ&説明下手ですいません。

バージョンは8になります。
---分岐2---の方の解釈であっています。
また、AもBも同じ階層に置いてあります。

-----------------------------------------------------
on (release) {
myID = setInterval(function () {
_root.A._visible = false;
clearInterval(myID);
}, 3000);
}
----------------------------------------------------
こちらの回答して頂いたもので、問題なく動作しました。
ご丁寧にありがとうございました!

お礼日時:2006/11/08 23:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!