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で質問しましょう!
似たような質問が見つかりました
- マウス・キーボード PCのマウスカーソルの動きが鈍い/時々止まるようになりました 5 2023/05/27 17:04
- Illustrator(イラストレーター) 【シェイプ形成ツール】でうまく分割できない 1 2022/05/26 10:57
- Excel(エクセル) テキストの背後にあるオブジェクトとは 3 2023/01/03 20:22
- バスケットボール バスケの姉妹対決について 4 2023/08/01 19:55
- iPad iPadのコントローラーってありませんでしょうか? 1 2023/02/27 20:18
- Illustrator(イラストレーター) Illustratorでオブジェクトの色が勝手に変わって困っています。 4 2022/09/04 18:47
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- その他(ゲーム) 今のドラクエは簡単すぎて(親切)いやと思うおっさんってどう思いますか? 昔のドラクエ特に1~3が不親 8 2023/07/06 22:26
- Instagram Instagramのアプリ"しばらくしてからもう一度実行〜..."と出た際について 1 2023/05/08 19:27
- オープンソース IT用語、ソースとオブジェクト、改変と翻訳と翻案の違いなど どのようにりかいすればよいのですか 1 2022/09/09 10:02
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フレーム内に移動したい
-
Access2010でサブフォームのフ...
-
URLを隠す、または別アドレスな...
-
モーショントゥィーンに関する...
-
iPhone11Pro(広角レンズの使え...
-
シーケンス番号の初期値
-
ActionScript 3.0についての質...
-
○秒後にフレーム移動
-
音ズレが…
-
x1 = x2; x2 = this._x;
-
ImageMagickで透過GIFアニメが...
-
メタフレーム導入にあたり
-
めくれるカードの作成方法
-
フレームでページ分かれていて...
-
フレーム(0)に行くと値が初期化...
-
エクセルのデータを指定した様...
-
車の運転時のメガネ 縁なし(...
-
Directshowを使って動画を画像...
-
phpで音を鳴らす
-
絞り込み条件検索について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フレーム内に移動したい
-
Access2010でサブフォームのフ...
-
#1009: null のオブジェクト参...
-
車の運転時のメガネ 縁なし(...
-
VBで動的に作成したパネルの上...
-
キーフレームとはなんですか?
-
【C++】IDirect3DSurfaceのディ...
-
VBAでIE操作時のLocationURLとURL
-
フレーム内のオプションボタン...
-
iframeはSEO的に不利になる?
-
2倍速を等速動画に(車載動画)
-
トグルボタンの排他制御でご教...
-
チェックボックスを横並びに表...
-
フレーム間の処理2
-
MacBook Airで作成するトレス動...
-
ソーラーパネルのアルミフレー...
-
ドロップフレームの計算をエク...
-
Directshowを使って動画を画像...
-
フレーム内でのリダイレクトに...
-
英語で「フレームの右上」
おすすめ情報