今、下記のようなコードでシーン移動を行っています。
******************************************************************************
stop();
stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler_033);
function fl_KeyboardDownHandler_033(event:KeyboardEvent):void
{
MovieClip(this.root).gotoAndPlay("P33end", "P33");
stage.removeEventListener(KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler_033);
}
******************************************************************************
これに加えて、
「Shiftキー」を押すことで、ひとつ前のシーンに戻る機能を追加したいのですが
どのように記述すべきでしょうか。
ご教示いただければ幸いです。
No.1ベストアンサー
- 回答日時:
「ひとつ前のシーン」の件は少しややこしい(色々な場合がある)のでとりあえず置いておいて
「Shiftキー」を押すことで シーン「P33」のフレーム「P33end」に移動するスクリプトを書きます。
リスナー関数の仮引数(ご質問のスクリプトの場合は「event」)には
発生したキーボードイベントオブジェクトの参照が入ります。
そのキーボードイベントのkeyCodeプロパティを調べると
そのキーボードイベントを発生させたキーコードがわかります。
『もしそのキーコードが「SHIFT」キーであれば…』というif文を付け加えれば良いので
次のようになります↓。
//**************************************
stop ();
stage.addEventListener (KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler_033);
function fl_KeyboardDownHandler_033 (event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.SHIFT)
{
MovieClip(this.root).gotoAndPlay ("P33end", "P33");
stage.removeEventListener (KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler_033);
}
}
//**************************************
Keyboard.SHIFT は Keyboardクラスの定数です。
このような書き方を知らなくても(ヘルプなどで調べなくても)別にかまいません。
fl_KeyboardDownHandler_033 内に
trace(event.keyCode);
などと書いて「制御」→「ムービープレビュー」すれば
キーコード(コード番号)得られます。
「SHIFT」キーのキーコードは 16 です。
ですから上のコードの if文 の部分を次のように変えても良いです。
if (event.keyCode == 16)
=========================
さて「ひとつ前のシーン」です。
上のスクリプトを原型にして
関数名だけを変えて「ひとつ前のシーン」に移動する場合は次のようになります。
//**************************************
stop ();
stage.addEventListener (KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler_034);
function fl_KeyboardDownHandler_034 (event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.SHIFT)
{
MovieClip(this.root).prevScene();
stage.removeEventListener (KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler_034);
}
}
//**************************************
この prevScene() ですが
これは gotoAndStop(○○) と同じで
そのシーンの先頭フレームで止まります。
gotoAndPlay(○○) と同じように
シーンの先頭フレームから再生を開始させたい場合は
MovieClip(this.root).prevScene();
の後に
MovieClip(this.root).play();
と書く必要があります。
ただし
この MovieClip(this.root).play(); を付け加えて動作するのは
Flash Player 10 以上(要 Flash CS4 以上)のみの場合があります。
この辺は場合(その他の条件)によって変わるので実際にやってみないと何とも言えません。
お礼が遅くなり申し訳ございません。
ご丁寧にソースを記載していただきありがとうございました!
無事、アクションを設定することが出来ました。感謝です!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- オープンソース Pythonのコードをexe化 1 2023/07/03 08:01
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[AS3]ループするたびに変数等は...
-
シーン逆再生から再生
-
シーンの分割方法
-
HTMLのフレームとテーブル...
-
ICチップのリードフレームを単...
-
FALSH一部レイヤーだけループ再生
-
キーフレームとはなんですか?
-
可愛い無料写メフレームサイト
-
ページ移動する間にMCのアクシ...
-
Excel VBA SetFocus
-
PS5やPS4proに関して質問です。...
-
C言語 バッファについて。
-
Flashゲームのセーブ機能の作り方
-
再生中のフラッシュ・巻き戻し...
-
WEBブラウザの重複起動の禁止
-
リフレッシュ・レート、フレー...
-
ビルダーでのフレームって縦幅...
-
ホームページに再生ボタン
-
トグルボタンの排他制御でご教...
-
Suzukaで時計のflashを作成し、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[AS3]ループするたびに変数等は...
-
flashバナーの作り方
-
A.S 3.0 キーボードでのフレー...
-
HTMLの背景の色をシーン毎に変...
-
Flash A.S3.0のシーン移動について
-
Flash4で、シーンをまたいでB...
-
Action Scriptで変数を持ち越し...
-
Flashで右クリックメニューにつ...
-
フレーム内に移動したい
-
ソーラーパネルのアルミフレー...
-
HPを作りたい
-
【C#】wavファイルの複数同時再生
-
phpで音を鳴らす
-
ドロップフレームの計算をエク...
-
フレーム内のオプションボタン...
-
車の運転時のメガネ 縁なし(...
-
C#でDLLファイル読み込みを行う...
-
オプションボタンを矢印キーで...
-
WEBブラウザの重複起動の禁止
-
VBで動的に作成したパネルの上...
おすすめ情報