- ベストアンサー
Flashでのゲーム用アナログ時計作成
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2 です。 動かせる 「○」 は変形点です。 変形点はFlashオーサリングツール上の FLAファイル にしか存在しない編集上の中心点です。 基準点の 「+」 は SWF 上で存在する ActionScript 用の中心点で, Adobe(Macromedia) Flash の場合, シンボルに変換した以降は動かすことができません。 (別のFlash作成ソフトであれば動かせるものもあります。) Adobe(Macromedia) Flash の場合は, 基準点の 「+」 を動かすのではなくて, ムービークリップなどシンボルの中身を動かします【図】↓。
その他の回答 (2)
- BlurFiltan
- ベストアンサー率91% (1611/1754)
バージョンが抜けていますが,これは 質問番号:5233828 「Flashでの座標指定におけるボタン有効化」 FLASH CS4 の AS 2.0 と同じと考えて良いですよね。 > 初めは午前4時を指し、 > 「現実の5秒ごとに一時間進む」ように作る 大まかには onEnterFrame または onClipEvent(enterFrame) で, getTimer から得られた値から _rotation を算出させれば良いと思います。 長針(cyousin)と短針(tansin)が存在するタイムラインのフレームに記入するスクリプト例。 ------------------------------------------------------ // 短針の最初の角度を設定 var tan_r:Number = 120; // 短針を最初の角度にする tansin._rotation = tan_r; // 今(今がいつかは知らない 場合によって変わる)の時間(ミリ秒)を取得 var now0:Number = getTimer(); // 1フレーム進む時間毎に毎回実行する関数を定義 this.onEnterFrame = function():Void { // 1フレーム進む時間毎に時間(ミリ秒)を取得 var now1:Number = getTimer(); // 長針を回転 cyousin._rotation = 360*(now1-now0)/5000; // 短針を回転 tansin._rotation = tan_r+360/12*(now1-now0)/5000; }; ------------------------------------------------------
当方あまり詳しくないです。 本当にただ5秒に1回転するだけのものですが、作ってみました。 まず、最初に時間をセットするのは簡単です。 開始したい時間を30でかければ回転角度が出ます。 開始したい分を6でかければ回転角度が出ます。 これをロード時に実行するだけです。 そこから回転する仕組みは フレームレート(1秒間に表示されるフレームの数、以下fpsと書きます)と一周させたい秒数から、長針の1フレームあたりの回転角度を算出、それを加算(短針はその12分の1を加算)するというものです。 5秒で長針を一周させたい場合、長針の1フレームあたりの回転角度は「360 / (fps * 5)」 長針の12周(12時間)=短針の1週(12時間)なので、短針の1フレームあたりの回転角度は、長針の回転角度を12で割ったものです。 あとは、_rootに長針と短針のムービークリップ(ここではchosin,tansin)を配置して、フレームにASを記述してまとめて操作します。 (動作の上で最重要なのは、フレームレートと変数fpsの数値を一緒にすることです。) //ここから------------------------------------------------- //設定 sh = 4;//開始時 sm = 0;//開始分 fps = 30;//フレームレート h = 5;//一時間(長針の一周)をリアルタイムの何秒にするか //設定不要 rota = 360 / (fps * h);//長針の1フレームあたりの回転角度を算出 onLoad = function(){ //読み込み完了と同時に設定した時間に長針と短針をセット tansin._rotation = sh*30;//12時間で360度、360/12=30 chosin._rotation = sm*6;//同じく360/60=6 } onEnterFrame = function(){ chosin._rotation += rota;//長針を1フレームあたりの角度だけ回転させる tansin._rotation += (rota/12);//長針の12回転=短針の1回転なので回転量は12分の1 }
関連するQ&A
- 中学受験の算数 時計の問題です。
午前0時から正午までの間に時計の長針と短針の作る角度が90度になることを考えます。 長針と短針が90度になる時刻を全て加えると何時間何分何秒になりますか。 答えは、132時間0分0秒です。 地道に長針と短針が90度になる時刻を出し、それらを足し合わせる方法ではないやり方を教えてください。わかりません!
- ベストアンサー
- 中学受験
- 時計算 一直線になる
長針が30秒で一周し、短針が3分で一周する時計があります。 今、長針と短針が反対方向をさして一直線になっています。 長針と短針が最初に重なるのは、今から何秒後ですか。 よろしくお願いします。
- ベストアンサー
- 数学・算数
- ActionScriptでアナログ時計
ActionScriptでアナログ時計を作ったのですが、いまいちスクリプトの意味が分かりません。 _rootのタイムラインに長針・短針・秒針をまとめたムービークリップを配置し(Y軸に対して水平)、そのムービークリップの1フレーム目に以下のフレームアクションを記入しました。 now = new Date(); theHour = now.getHours(); theMin = now.getMinutes(); theSec = now.getSeconds(); ここまでは現在の時間を取得しているという事が分かりますが、問題は以下です。hour、min、secはそれぞれ短針、長針、秒針のMCの名前です。 hour._rotation = (theHour*30)+(theMin/2)-90; min._rotation = theMin*6-90; sec._rotation = theSec*6-90; この2,3行目については、「分・秒ともに60回で360°を一周するから、一度に6°ずつ動く。それに分または秒を掛けたものがそのMCの角度になる。Y軸に水平になっているから90を引くことで12時のところが起点になる」という理解でよろしいでしょうか。 問題は1行目です。theHourに30を掛けるのは12時間*30°で360°になるからで、その後が分かりません。
- ベストアンサー
- Flash
- 時計の長針と短針
アナログ式の時計って 必ず長針が短針より上にありますよね。 何故ですか? 長針のほうが短針よりもよく動くからなんでしょうけど、もしも長針を下にしたらどんな不都合があるのかというところまで聞きたいです。 長針が文字盤から浮いているために、見る角度によって何分だかわかりづらいことが多いので聞いてみました。
- ベストアンサー
- その他(生活・暮らし)
- 時計算
一日を20時間、一時間を72分として、添付した画像のような時計をつくりました。現在、この時計は8時をさしています。 問題)8時から9時までの間で、長針と短針が重なる時刻は何時間何分ですか。 長針は一分間に360÷72=5度 短針は一分間に36÷72=0.5度 この時計の一区切り36度 それが8こで288度 あとは5度と0.5度の差でこれをうめればいい この解説はわかるのですが、疑問に思うことがあります。 それは一区切り(たとえば10から1までの間) これは一時間に短針が進む距離ですか? この時計は、一日20時間 だとしたら、一区切りは2時間分になる さっきの短針が一分間に動く距離を36度÷72とした この式がひっかかります。 普通の時計なら一分間に動く短針は 一時間で30度うごく よって一分間で動く距離を求めるには60分で割ればいい この時計の短針も一時間36度動くなら、この時計は一時間72度なので 72で割ればいい しかし、この時計の短針は 2時間で36度動くと考えると、150でわらなければいけないのではないか? という疑問がわいてきます。 なぜ一時間36度になるのでしょうか? どこで勘違いしているのでしょうか? おしえてください。
- ベストアンサー
- 数学・算数
- 中学数学、時計の問題
時間が正確な時計Aと、常に30分早く進んでいる時計Bがある。 時計Aの長針と短針のなす角をa°、時計Bの長針と短針のなす角をb°とする。 (0°≦a°≦180°,0°≦b°≦180°) 午前9時から午後6時の間に a°=b° となるのは何回あるか。 上記の問題分かりませんT T 回答お願いします
- ベストアンサー
- 数学・算数
補足
教えていただきありがとうございます。 おっしゃるとおり、バージョンはCS4でAS2.0です。 ご回答頂いた方法で回転させることができたのですが、回転の基準点がおかしいのか、時計のように回ってくれません。 自由変形から○の部分を針の下部に移動すればそれを軸に回ってくれると思ったのですが、どうしても針の真ん中を中心に回ってしまいます。 回転の基準点を変更するにはどうしたら良いでしょうか? すみませんが、教えてください。よろしくお願いします。