No.1ベストアンサー
- 回答日時:
おそらく,
説明するのも難しいのだとは思います。
それで今ひとつ,したい内容のイメージが湧きにくいので,
ちゃんと回答できませんが,
原理っぽいことだけをサンプルで説明したいと思います。
今作られているものがわからないので,
それはそのまま保留で,ファイルを新規に作成してください。
====== 簡単なサンプル1 ============
まずドキュメントを新規作成します。
そして,
そのムービーのタイムラインを2フレーム・2レイヤーにしてください。
上のレイヤーをスクリプト専用レイヤー,
下のレイヤーをオブジェクト専用レイヤーと一応決めておきます。
1
□ レイヤー 筆・・|○ []| ←スクリプトレイヤー
□ レイヤー 筆・・|○ []| ←オブジェクトレイヤー
そして上レイヤーの フレーム1 に次のようなスクリプトを書いてください。
コピペ可です。
-------------------------------
//フレーム1でストップ
stop();
//変数count の初期値を 0 に設定
count = 0;
-------------------------------
次に,タイムラインで 下レイヤー を選択し,フレーム2 もキーフレームにしてください。
そして,タイムラインで 下レイヤー の フレーム1 を選択し,
ステージ上に適当な塗りの四角を書いて,
右クリック→シンボルに変換 でボタンシンボルにしてください。
そして,そのボタンに次のようなスクリプトを書いてください。
コピペ可です。
------------------------------
on (release) {
//変数count を 1 ずつ加算
count++;
//もし count が 50 になれば
if (count == 50) {
//フレーム2 に行ってストップ
gotoAndStop(2);
}
}
------------------------------
次に,タイムラインで 下レイヤー の フレーム2 を選択し,
ステージ上に,「成功!」とでもテキストを書いてください。
テキストの種類や文字は何でも良いです。
単なる フレーム2 である目印です。
1
□ レイヤー 筆・・|○ []| ←スクリプトレイヤー
□ レイヤー 筆・・|●|●| ←オブジェクトレイヤー
ボタン↑ ↑文字
そして,SWFをパブリッシュしてみてください。
ボタンを50回クリックすれば,フレーム2 に行くムービーが完成すると思います。
これが,「50回連打できたら○○」 という部分です。
フレーム2 以降にボタンが変形するアニメーションを用意すれば良いかもしれません。
具体的なイメージがわかりませんし,方法はいろいろありますからなんとかその辺は考えてもらうしかないです。
「50回連打できたら○○」 の方法はわかりますか?
何でも良いので適当に "変数" というものを用意して,
その "変数" の "値" を変化させて,
変数の値がある条件をクリアすれば,○○するという方法です。
count というのは勝手に作った変数名で,
ringo1 でも banana25 でも適当に半角英字から始まっていて,
スクリプトに存在しないような単語であれば何でも良いです。
変数は値の入れ物です。
ボタンのスクリプトの中ですが,
count++; という部分があります。これは,
count = count +1; と同じ意味です。
変数 = 変数 + 1;
というパターンは良く使われるので,
count++; や count+=1; などと省略できます。
変数 = 変数 + 2; は上記のように 変数++; とは省略できません。
変数 = 変数 + 2; または 変数+=2 となります。
ボタンのスクリプトには if文 も使われています。
if文は条件分岐です。
if(○○){ }
もし(○○)が成立すれば,{ }内を実行するという文です。
参考URL
FLASHアクションスクリプト入門編 「if / if else文」
http://isvalid.jp/actionscriptLab/ASlesson/actio …
=================================
上記 簡単なサンプル1 では,
「50回連打できたら○○」の方法は説明しましたが,
まだ「制限時間内に~」という部分が抜けています。
「50回連打できたら○○」の方法は,おそらく誰がやってもどんな場合でも,
「変数を用意」
→ 「変数をカウントアップ」
→ 「条件成立で何か動作」
という流れは変わらないと思います。
しかし「制限時間内に~」 というのは様々な方法があって,
人によって,また場合によって変わるので答えにくいです。
ですから,以降のサンプルは単なる一例だと思ってください。
====== 簡単なサンプル2 ============
簡単なサンプル1 で作ったムービーに1フレーム追加して,3フレームにしてください。
そして 下レイヤー の フレーム3 をキーフレームにしてください。
フレーム2 のステージ上には 「成功!」 みたいなテキストを書いたので,
フレーム3 のステージ上にも 「成功!」 みたいなテキストになっていると思いますから,
フレーム3 のテキストを「残念!」みたいなのに書き替えてください。
これも単なる フレーム3 に行ったことの目印ですから何でもかまいません。
そして上レイヤーの フレーム1 にスクリプトを以下のように書き替えてください。
コピペ可です。
-----------------------------
//フレーム1でストップ
stop();
//変数count の初期値を 0 に設定
count = 0;
// 関数zannen を 一定時間後に実行
zannen = setInterval(function () {
// フレーム3 に行ってストップ
gotoAndStop(3);
// この 関数zannen をクリア
clearInterval(zannen);
// 10000ミリ秒(10秒)後に
}, 10000);
-----------------------------
そして,ボタンのスクリプトを次のようにを書き替えてください。
コピペ可です。
-----------------------------
on (release) {
//変数count を 1 ずつ加算
count++;
//もし count が 50 になれば
if (count == 50) {
//フレーム2 に行ってストップ
gotoAndStop(2);
// この 関数zannen をクリア
clearInterval(zannen);
}
}
-----------------------------
要は setInterval を使って何もしなければ自動的に フレーム3 に行くのですが,
ボタンを50回連打できた場合にかぎり フレーム2 に行くというしくみです。
setInterval は以下のような構造になっています。
<ID名> = setInterval(function () {
<ステートメント>;
clearInterval(<ID名>);
}, <実行間隔(ミリ秒)>);
詳しくはこちらを参考にしてみてください↓。
参考URL
「外部SWFムービー内のfunctionをロード直後に呼出す」
http://www.fumiononaka.com/TechNotes/Flash/FN030 …
=================================
わかりますか?
簡単なサンプル2 では setInterval を使っていますが,
別にこんなものは使う必要は全くないのです。
ボタンを50回連打できてもできなくてもそんなことは関係なく,
自動的にある動作をするようにしておけばいいのです。
たまたま「ボタンを50回連打できた場合」に限ってちがう動作をするしくみを作ればいいのです。
例えば
51フレームのムービーを作って,50フレーム目で stop();
ボタンを50回連打できた場合に限って,51フレーム目に行く。
とかでも時間制限はできます。
だから,方法自体は 簡単なサンプル1 の説明で済んでいることになります。
ボタンが動き回るような場合は,
簡単なサンプル1 の状態をムービークリップ内に作って,
ボタンを動き回らせても良いと思います。
ムービークリップ内にボタンを作った場合は,パスに気を付けてください。
以上,原理っぽいことだけをサンプルで説明しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
potplayerについて質問です
-
FLASHでゲームを作っていた人は...
-
uwscでExcelに自動記入
-
ac3 tweener の 色変換について
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
-
Flashplayerの運用について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フレーム内に移動したい
-
ドロップフレームの計算をエク...
-
Access2010でサブフォームのフ...
-
車の運転時のメガネ 縁なし(...
-
フレーム内のオプションボタン...
-
フレームでページ分かれていて...
-
フレーム内でのリダイレクトに...
-
URLを隠す、または別アドレスな...
-
iPhoneやiPadなどの黒いフレー...
-
HTMLのフレームとテーブル...
-
音楽を止めたい><
-
cisco catalystのトラブルシュ...
-
ビルダーでのフレームって縦幅...
-
掲示板などの表示
-
眼鏡レンズを持参すればフレー...
-
眼鏡のフレームは、顔の輪郭か...
-
IE制御でコピーをしたいのだけれど
-
HPのメニュー
-
短時間フーリエ変換
-
DREAMWEAVERでのフ...
おすすめ情報