Flash professional CS5を使用してAS3.0で記述しています。
メインのタイムラインにフレームラベルが二つ(main1とmain2)あります。
main1にはステージにムービークリップのmc1が,main2にはmc2が配置してあります。
さらに,
こういう書き方でいいのかわかりませんが;
mc1内にはフレームラベルsub1,sub2があります。
同様に,
mc2内にはフレームラベルpart1,part2があります。
sub1ではボタン(btn1)があり,押すとフレームラベルsub2に進むようになっています。(確認済み)
sub2にもボタン(btn2)が用意してあり押したらムービークリップmc2内のpart2に移動させたいと考えています。
フレームラベルsub2で
btn2.addEventListener(MouseEvent.CLICK, Click2);
function Click2(evt:MouseEvent):void{
MovieClip(parent).gotoAndStop("main2");
}
と記述すればメインタイムラインのフレームラベルmain2に移動することは確認しました。
しかしフレームラベルpart2へ移動するにどのように記述したらよいかわかりません。
MovieClip(parent).mc2.gotoAndStop("main2");
としてもやはりmc2が未定義なので無理なのでしょうか?
もしそうでしたらmain1の段階で定義しようかと思うのですが,その場合はどのように記述すればよいのでしょうか?
つまり,メインタイムライン上における後ろのフレームラベルの子のフレームラベルに移動したいです。
説明がうまくできないので図も載せます。
http://www1.axfc.net/uploader/Img/so/99986
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
Flash は
基本的にその時点で存在するものにしか命令できません。
メインタイムラインの「mc1」と「mc2」は同時に存在しないため
お互いに命令しあうことは基本的にできません。
あえてするなら次のような感じです↓
//---「mc1」フレーム "sub2" のスクリプト---
//「mc1」の再生を停止
stop();
//「btn2」にクリック時に実行するイベントリスナーを登録
btn2.addEventListener(MouseEvent.CLICK,Click2);
//関数 Click2 の定義
function Click2(evt:MouseEvent):void {
//親階層に毎フレーム時間実行するイベントリスナーを登録
MovieClip(parent).addEventListener(Event.ENTER_FRAME,gotoPart2);
//親階層をフレーム "main2" に進めて停止
MovieClip(parent).gotoAndStop("main2");
}
//関数 gotoPart2 の定義
function gotoPart2(evt:Event):void {
//親階層の「mc2」をフレーム "part2" に進めて停止
evt.target.mc2.gotoAndStop("part2");
//親階層の毎フレーム時間実行するイベントリスナーを削除
evt.target.removeEventListener(Event.ENTER_FRAME,gotoPart2);
}
//--------------------------------
ただし
Flash Player 10 以上用SWFをパブリッシュする必要があります。
(Flash Player 9 にはこれらができないバグ(仕様?)がある)
(同様のことは Flash Player 8 以下でもできるのでおそらく 9 だけのバグ)
「mc1」とその「parent」=「root」は同時に存在しているので
「mc1」から「root」にイベントリスナーを登録することはできます。
また
「root」は「mc2」と同時に存在しているので
「root」から「mc2」にgotoAndStop命令をすることはできます。
~~~日常生活での類似例~~~
私は 今日 家にいるが 明日 はいない。
弟は 明日 家にいるが 今日 はいない。
これでは明日
弟に対して 「犬の散歩をしろ」 と命令することができないので
今日も明日も家にいる母に
明日 弟に対して 「犬の散歩をしろ」 と命令してもらうことにした。
~~~~~~~~~~~~~~~
上の方法は Flash Player 10 ではできると言っても
不確実で危ない橋を渡るようなものですから
普通はあまりしないと思います。
スクリプトがバラバラになるのでわかりにくいかもしれませんが
以下のようにする方がもう少し確実だと思います。
「root」の フレーム "main1" 辺りに次のような変数を用意し,
var flag:Boolean = false;
「mc1」の フレーム "sub2" の Click2 を次のように変更し,
//関数 Click2 の定義
function Click2(evt:MouseEvent):void {
//親階層の flag の値を true にする
MovieClip(parent).flag = true;
//親階層をフレーム "main2" に進めて停止
MovieClip(parent).gotoAndStop("main2");
}
「root」フレーム "main2" に次のように書く。
//flagの値がtrueだったら
if (flag) {
mc2.gotoAndStop("part2");
}
素早い回答ありがとうございます。
この場合はやはりフラグなどを使わないとだめなんですね。。
大変よくわかりました。
他の方の質問に対する回答をよく拝見させてもらっていますが,例えなど説明が大変わかりやすくとても勉強になります。
また何かありましたらよろしくお願いいたします。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- プリンタ・スキャナー Wordで作った宛名ラベルを印刷しようと思って、プリンターの上のところにある、手差しトレイ的なところ 3 2022/11/17 18:40
- C言語・C++・C# 【C++】IDirect3DSurfaceのディープコピーは可能ですか? 1 2022/07/06 02:47
- Visual Basic(VBA) フレーム内のオプションボタンの選択結果をセルに書き出したい。 図のような預金種目というフレームにオプ 2 2022/07/29 11:12
- Gmail Gmailのラベル内のメールを受信トレイに移してから、そのラベルを削除したいです。 1 2022/09/10 20:51
- JavaScript スマホ上で、左右スワイプで次のページに移動させたいです 2 2022/11/11 17:04
- スポーツサイクル ポスターフレームについて 1 2022/12/24 16:50
- その他(ファッション) スポーツメガネでフレームの色は白などはあり? 2 2022/11/30 07:26
- 画像編集・動画編集・音楽編集 動画をディスク作成すると画像が乱れる。 4 2022/06/24 07:49
- メガネ・コンタクト・視力矯正 メガネのフレームが折れそうで 壊れていますが 自分で直せますか レンズが良いものが3つあります いつ 7 2023/06/26 16:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AS3.0で子MCから他の子MCの...
-
WEBブラウザの重複起動の禁止
-
#1009: null のオブジェクト参...
-
C言語 バッファについて。
-
phpで音を鳴らす
-
ドロップフレームの計算をエク...
-
フラッシュでカレンダーの作り...
-
静止画をmov形式で保存する方法
-
擬似フレームとPHP
-
delphi6trialで読み込み違反エラー
-
メガネ ウェリントン どこの国...
-
フラッシュプレイヤーのバージ...
-
車の運転時のメガネ 縁なし(...
-
ハードディスク DVD 読み...
-
オプションボタンを矢印キーで...
-
YESのオプションボタンがONにな...
-
Flashゲームのセーブ機能の作り方
-
【C#】wavファイルの複数同時再生
-
眼鏡のフレームは、顔の輪郭か...
-
[iframe]に関する質問です
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WEBブラウザの重複起動の禁止
-
JavaScriptからsetVariable()で...
-
FLASH LITE1.1のテキスト入力に...
-
FLASH上でインラインフレームみ...
-
Excel VBA SetFocus
-
FlashLite1.1でのランダム表示...
-
Flash lite1.0で カウントダウン
-
Flash lite1.0の計算クイズ
-
時刻の設定と取得について
-
二択のフレーム移動
-
_parent.gotoAndStopコマンドに...
-
Suzukaで時計のflashを作成し、...
-
フレーム内に移動したい
-
ドロップフレームの計算をエク...
-
Access2010でサブフォームのフ...
-
phpで音を鳴らす
-
フレーム内のオプションボタン...
-
VB6のスクロールバー付きフレー...
-
【C#】wavファイルの複数同時再生
-
車の運転時のメガネ 縁なし(...
おすすめ情報