
今、下記のようなコードでシーン移動を行っています。
******************************************************************************
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
potplayerについて質問です
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
-
Flashplayerの運用について
-
VBAのコンボボックスの年月表示...
-
Adobe Flash Player
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スマホでサイトの画像を長押し→...
-
potplayerについて質問です
-
ゲオでカードを作るのは何歳か...
-
flash.ocxエラーについて
-
ウェブサイトで Flash が事実上...
-
chrome flash
-
uwscでExcelに自動記入
-
flash (.swf) を編集したい
-
arduino プログラムについて
-
Form内のselectを連動させるに...
-
ActionScript 3.0についての質...
-
laptop go2からの買い替え、lap...
-
Flashでの画像、フェードイン・...
-
私のコンピューター上のファイ...
-
Flash Builder 4.7 デザインモード
-
FLASHでゲームを作っていた人は...
-
Adobe(マクロメディア)のFLAS...
-
Excel VBAについて。
-
フラッシュゲームアーカイブ2
-
パソコンのリカバリーについて
おすすめ情報