![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
[1]~[17][18][19][20][21][22][23][24][25][26][27][28][29][30]
B ●a
A ●
上記のようなflaファイルがあります。
AはボタンでBはムービーです。
Aのボタンには以下のようなアクションスクリプトが設定されています。
--------------------
on(rollOut){
this.gotoAndPlay(18);
}
--------------------
Bの18フレームには以下のようなアクションスクリプトが設定されています。
--------------------
this.stop();
--------------------
Aのボタンの1度目のロールオーバーはきちんと意図した通りに動くのですが、
連続で2回やった時に意図した動きになりません。
時間を置いて再びやったり、違うボタンを触ってからやればきちんと動きます。
連続で2回やってもきちんと意図した通りの動きをさせるためにはどのようにすればいいのでしょうか?
No.8ベストアンサー
- 回答日時:
[1]~[17][18][19][20][21][22][23][24][25][26][27][28][29][30]
B ●
A ●
ではなくて
[1]~[17][18][19][20][21][22][23][24][25][26][27][28][29][30]
B●
A●
の用同じ1フレーム目にして下さい
同じフレームにおいたら無事できました!
ありがとうございました!
これから細かいところを直していきたいと思います。
本当にたくさんおつきあいいただきありがとうございました!!
No.7
- 回答日時:
ボタンAのスクリプト
on(rollOut){
//ロールアウト
_root.B.gotoAndPlay(0);
}
↑
_root.B.gotoAndPlay(0); ではなくて
_root.B.gotoAndPlay(1); ですね
怪しい点はBのMCのインスタンス名ですね
Bではなく半角英数の小文字のbにして見てください
そうですか…残念です。
FLASHってバージョンでそんなに互換性がないんですね…
ボタンA
----------
on(rollOut){
//ロールアウト
_root.b.gotoAndPlay(1);
}
----------
ムービーBインスタンス名を「b」
に変更してみましたがダメでした…。
No.6
- 回答日時:
MC:ムービークリップ
>ムービーBのインスタンス名を「B」にする。
これはMC自体に付けます。フレームにはつけません
>_root.B.gotoAndPlay(0);
ここで指定しているフレーム番号はBのMCの中のことを意味しています。
つまりBのMCの中には2つのムービーが存在することになります。
[BのMCの中]
制御 〇
オーバ用 ●-------------●a
アウト用 ●----------●a
〇---いきなりスタートしないようにストップする命令
●a---ムービの終了のためストップ命令
[カレントのフレーム]
制 御 〇
ボタン ●
BのMC●
〇---いきなりスタートしないようにストップする命令
[1]~[17][18][19][20][21][22][23][24][25][26][27][28][29][30]
B ●
A ●
ボタンAのスクリプト
on(rollOut){
//ロールアウト
_root.B.gotoAndPlay(0);
}
ムービーB
[1][2][3][4][5]
● ●a
a:this.stop();
であっているのでしょうか?
正常に動かないのですが…。
No.5
- 回答日時:
よくよく考えるともっと簡単にできそうですね
※Bのムービーのインスタンス名を「b」としてます。
[Aボタン]
on (rollOver) {
//ロールオーバー時に表示するBムービーの開始フレーム
_root.b.gotoAndPlay(2);
}
on (rollOut) {
//ロールアウト時に表示するBムービーの開始フレーム
_root.b.gotoAndPlay(24);
}
[ BのムービーMC ]
0フレーム---stop();
2フレーム---ロールオーバー時 ムービースタート
10フレーム---stop();
ロールオーバー時 ムービーストップ
24フレーム---ロールアウト時 ムービースタート
30フレーム---stop();
ロールアウト時 ムービーストップ
こんな感じでどうでしょうか?
ボタンの方でオーバした時アウトした時にことなる再生フレーム番号で再生しています
とりいそぎということで以下のようにしてみました。
(シーンのフレーム設定はそのままです。)
ムービーBのインスタンス名を「B」にする。
(この場合はフレームにつけるのでしょうか?それともムービー自体から指定してつけるのでしょうか?
今回は両方「B」にしてみました。)
ボタンAに以下のアクションスクリプトを指定
--------------------
on(rollOut){
//ロールアウト
_root.B.gotoAndPlay(0);
}
--------------------
しかし何も起こりません…。
_root.B.gotoAndPlay(0);
で指定した0というのはシーン上でのインスタンスBの0フレーム目ということでしょうか?
それともムービーBの0フレーム目ということなのでしょうか?
すいませんがよろしくお願いします。
No.4
- 回答日時:
アクションスクリプトを使うことで単純化してみてはどうでしょうか?
例えばAのボタンをスイッチのように考えてみてはどうでしょうか?
変数xを利用して
ロールオーバーした時 x=1
ロールアウトした時に x=0
とします。
BのMCの方に下記のように判定しては?
onClipEvent (enterFrame) {
if(x==1){
//ロールオーバーした時に再生するフレーム番号
this.gotoAndPlay(18);
}
if(x==0){
//ロールアウトした時に再生するフレーム番号
this.gotoAndPlay(18);
}
}
BのMCの中の1フレームにしょっぱちに稼動しないように
this.stop();
ちょっと荒い説明になりましたがどうでしょうか?
回答ありがとうございます。
ActionScriptで変数を使うのは初めてですので、わからないことが多いのですがやってみようと思います。
早速ですが…
ボタンAにはどのように記述すればいいのでしょうか?
on(rollOut){
x==0;
}
のようにすればいいのでしょうか?
Bの18フレーム目には
onClipEvent(enterFrame){
if(x==0){
this.gotoAndPlay(18);
}
this.stop();
のようにしてみました。
ですが動きませんでした。。。
記述が逆でしょうか?
修正お願いします。
No.2
- 回答日時:
あら私は勘違いしていました・・・すまそん
AのボタンでBのムービーをコントロールしたいってことですよね?
>連続で2回やった時に意図した動きになりません。
ですからロールオーバーとロールアウトの2つが必要なのではないですか?
この場合はロールアウトしか定義してませんよね?
またまた誤解認識してたらごめんなさい
[1][2][3][4]~[17][18][19][20][21][22][23][24][25][26][27][28][29][30]
B ●a
A ● ● ●
AはボタンでBはムービーです。
A
--------------------
on(rollOut){
this.gotoAndPlay(18);
}
--------------------
B
--------------------
this.stop();
--------------------
Aのボタンの「オーバー」にはムービーが設定されています。
ですが、ボタンではロールアウト時のムービーって指定できませんよね。
ムービーがカットアウトになっちゃうのでなんとかムービーを指定しようとして、
フレームを指定して飛ばすことを思いついたわけです。
最初はロールオーバー時のムービーもシーン上に作成していたのですが、
フレーム数が多くなってしまったので、ボタンに貼り付けました。
Bのムービーにはボタンのロールアウト時のムービーが入っています。
それでロールアウト時のみフレーム指定して飛ばすようにしたんですが、
指定ムービーと同じフレーム(この場合18フレーム目)で再度ロールアウトすると、
19フレーム目に飛んでしまうんです。
これをなんとか回避したいと思っています。
下手な説明ですがおわかりいただけたでしょうか?
よろしくお願いします。
No.1
- 回答日時:
on(rollOut){
this.gotoAndSTOP(18);
}
にすればどうでしょうか
回答ありがとうございます。
[1]~[17][18][19][20][21][22][23][24][25][26][27][28][29][30]
B ●a
A ●
Aのボタン
--------------------
on(rollOut){
this.gotoAndStop(18);
}
--------------------
Bの18フレーム
--------------------
this.stop();
--------------------
としてみましたが、どうも2回目(18フレーム目)がうまく動作しません。
(Bのムービーが出ない)
どうしたらいいでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AfterEffectsでイージーイーズ...
-
aviutlで最後まで動画が読み込...
-
AviUtl不具合
-
Flashで文字がすらすらと書かれ...
-
クリックすると外側はそのまま...
-
気軽に動画上にマーカーをつけたい
-
Mayaレンダリングの中断
-
掲示板からIPアドレスってど...
-
<h1>を使っても無改行にするには
-
アプレット XXXXXX notinited ...
-
GoogleChromeでレイアウトが左...
-
XMLを作成してもタグしか表示さ...
-
ジャケットの革の素材がわかり...
-
Excel VBA 見本通りに...
-
プルダウンメニューの開く方向...
-
H1タグに改行の<br>を使う
-
doc As HTMLdocumentのコンパイ...
-
文字の最後に半角空白が勝手に...
-
HTML 全画面表示 リンク先の...
-
ASCII文字列以外を検出する正規...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
AfterEffectsでイージーイーズ...
-
Mayaレンダリングの中断
-
キーフレーム
-
aviutlで最後まで動画が読み込...
-
photoshopのアニメーションで拡...
-
MMDのAVI出力にとんでもなく時...
-
VFRのmp4をCFRに変換したい
-
Illustrator アプリケーション...
-
avidemuxでavi動画を一部切り取...
-
GIFアニメで不要な線がでてしまう
-
SAFARIでのx-oleobjectコンテン...
-
getURLで指定したリンク先が表...
-
教えて!キーフレーム
-
複数のgifアニメをレイヤーで重...
-
フレームページの表示について
-
adobe Encore CS4で作ったDV...
-
AfterEffectsのスタビライズの...
-
フレーム使用のHPでの掲示板の...
-
EPSON PRINT Image Framer Tool...
-
After Effects CS4で決まったフ...
おすすめ情報