FLASH初心者なのですが、ちょっとしたクイズを作らなくてはいけなくて
ActionScriptに挑戦しています。
rootにひとつのMCがあります。
このMCのタイムラインにはフレームが7個あり
このフレームの移動を「Spaceキー」で動かしたいため
rootのタイムラインに下記のようなscriptを書きました。
-------------------------------------
onClipEvent (enterFrame) {
this.gotoAndStop(1);
if (Key.getCode() == Key.SPACE){
this.gotoAndStop(2);
}
}
-------------------------------------
このコードで「スペース」を押すと1フレームから2フレームへの
移動はできましたが、「スペースを押すたびに次のフレームにいってほしくて、
フレーム7ではストップしてほしい」という動作をさせるためには
どうしたらいいのでしょうか?
loopとかif...else if...などの構文がよくわからないなりに
試したのですが、うまくいきませんでした。
分かられる方助けてください、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
loopとかif...else if...などはあまり関係ないような...。
それより,
具体的に何をしたときにどうしたいのかということをしっかりイメージさせることと,
フレーム移動のスクリプトをもう少し知ることと,
onClipEvent の使い方ももう少し... と言ったところのように思います。
文章から推測して(推測できない部分もありますが),
こんな感じでしょうか↓?
----------------------------------------
// このムービークリップが表示されたとき
onClipEvent (load) {
// 最初のフレームでストップ
this.stop();
// 変数 flag を 0 にする
flag = 0;
}
// どれかキーを押したとき
onClipEvent (keyDown) {
// スペースキー でなおかつ flag が 0 であれば
if (Key.getCode() == Key.SPACE && flag == 0) {
// 次のフレームへ
this.nextFrame();
// flag を 1 にする
flag = 1;
}
}
// どれかキーを離したとき
onClipEvent (keyUp) {
// flag を 0 に戻す
flag = 0;
}
----------------------------------------
// 次のフレームへ
this.nextFrame();
や,上記スクリプトにはありませんが,
// 前のフレームへ
this.prevFrame();
を使うと簡単です。
しかし,どういう動きをさせたいのか今ひとつわかりません。
わかるのは フレーム7 ではストップするということだけです。
変数 flag を用意したのは,
スペースキーを押し続けると,nextFrame(); が連続実行されてしまうからです。
1回押すたびに絶対に1フレーム進めるだけでしたら,
上のような感じになります。
連続実行された方が良い場合は,
flag など用意する必要はありませんから次のようになります。
----------------------------------------
// このムービークリップが表示されたとき
onClipEvent (load) {
// 最初のフレームでストップ
this.stop();
}
// どれかキーを押したとき
onClipEvent (keyDown) {
// スペースキー でであれば
if (Key.getCode() == Key.SPACE) {
// 次のフレームへ
this.nextFrame();
}
}
----------------------------------------
すごくシンプルですね。
oopとかif...else if...などは関係ないでしょう。
結局,この2つ目のスクリプトがベースで,
もっと何かをする場合は何かを追加すれば良いということになります。
もし,
最初のスクリプトを変更するとして,
Shift キー を押したときはバックさせたいのでしたら,
次のようになります。
----------------------------------------
// このムービークリップが表示されたとき
onClipEvent (load) {
// 最初のフレームでストップ
this.stop();
// 変数 flag を 0 にする
flag = 0;
}
// どれかキーを押したとき
onClipEvent (keyDown) {
// flag が 0 のときで
if (flag == 0) {
// スペースキー であれば
if (Key.getCode() == Key.SPACE) {
// 次のフレームへ
this.nextFrame();
// シフトキー であれば
} else if (Key.getCode() == Key.SHIFT) {
// 前のフレームへ
this.prevFrame();
}
// flag を 1 にする
flag = 1;
}
}
// どれかキーを離したとき
onClipEvent (keyUp) {
// flag を 0 に戻す
flag = 0;
}
----------------------------------------
こんな感じになると,
else if が出てきます。
しかし,文法とかそういう問題より,
「何をしたときどう動かしたいのか」を明確にしてください。
それをスクリプト文章にするだけで,
「何をしたときどう動かしたいのか」が明確でなければ,
スクリプト文は書けません。
sassakun様
ご丁寧なご回答ありがとうございました。
私のしたいことが言葉で明確に伝えられずすみません。
でも、ひとつめのコードをコピペして貼りましたら
思っていたとおりに動きました。
本当に助かりました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 【C++】IDirect3DSurfaceのディープコピーは可能ですか? 1 2022/07/06 02:47
- JavaScript スマホ上で、左右スワイプで次のページに移動させたいです 2 2022/11/11 17:04
- Visual Basic(VBA) フレーム内のオプションボタンの選択結果をセルに書き出したい。 図のような預金種目というフレームにオプ 2 2022/07/29 11:12
- その他(ファッション) スポーツメガネでフレームの色は白などはあり? 2 2022/11/30 07:26
- 画像編集・動画編集・音楽編集 動画をディスク作成すると画像が乱れる。 4 2022/06/24 07:49
- 写真・ビデオ iPhoneで撮影した動画の画角をキープした状態で容量を減らす方法。 3 2022/09/25 17:23
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- 車検・修理・メンテナンス フレームの歪み修理について 4 2022/05/18 19:20
- カスタマイズ(バイク) カスタマイズ 1 2022/11/12 01:09
- Java Javaプログラミングの質問になります。 ボタンを押下した時に画面遷移して 画面から戻ってきた時のi 1 2023/06/26 07:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
uwscでExcelに自動記入
-
Form内のselectを連動させるに...
-
new演算子について教えていただ...
-
この曲はなんでしょう?
-
pptxをPDFで保存すると、90%サ...
-
レジリエンス 変換キーが作動し...
-
adobe flashのページが一回で表...
-
potplayerについて質問です
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
Flashコンテンツを使ったWebサイト
-
ダウンロードしたデジブックはa...
-
Flashplayerの運用について
-
VBAのコンボボックスの年月表示...
-
Windows10重い
-
パソコンのリカバリーについて
-
iPhoneです。 Adobeフラッシュ...
-
ロック画面に天気を表示したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パラメーターの受け渡しPart2
-
ループ再生のflashをタイムライ...
-
Flash Professional CS5
-
actionscript2.0から3.0へ、
-
外部画像を読み込み、ボタンで...
-
actionscriptでfor文が正常に動...
-
Excel VBA SetFocus
-
画像をランダムに表示させたい
-
FLASH lite1.1での質問というか...
-
WEBブラウザの重複起動の禁止
-
ActionScriptの基本的な部分で...
-
ボタンシェイプにリンクを張ると…
-
深い階層でのムービークリップ...
-
FLASH LITE1.1のテキスト入力に...
-
一定処理せずに待つアクション...
-
as3 SharedObjectクラスを使用...
-
ASだけで○秒停止する方法
-
キーボードを押した時のムービ...
-
【ActionScript】命令文を再実...
-
FlashVarsでswfへ変数を渡し、...
おすすめ情報