• ベストアンサー

時計の針を回転させる

suzuki-_-の回答

  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.1

言葉だけだと説明しにくいのでASとともに。 確認の際は要全角スペース削除 コピペ -> 検索 -> 検索文字列: (全角スペース) 置換:(未入力) -> すべて置換 onClipEvent (enterFrame) {  // 変数01 = 360度を12分割 × (変数テキスト時間/12の余り)で時計の針の角度を算出  H01 = (360/12)*(_root.HTjikan%12);  // 変数02 = 現在の_rotationを360で表現  if (this._rotation<0) {// _rotationがマイナスの時だけ調整   H02 = 360+this._rotation;   // 例1 -180°(6時の角度) 360°+ -180°= 180°   // 例2 -90°(9時の角度) 360°+ -90°= 270°  } else {   H02 = this._rotation;  }  // (おまけ)いつも時計回りで目的角度に向かって回転したい  if(H01 < H02){   H01 += 360;  }  //  this._rotation = H02+(H01-H02)/2;  /* 現在角度から目的角度までの1/2ずつ針が回転  変数の値が-180~180の間でなくても、今回ぶつかった問題のように  自動的に修正してくれるから心配無用*/ }

thank001
質問者

補足

suzuki-_-さん、書き込みいただきありがとうございます。 大方理解できてきましたが、終わってからだとお礼が更に遅れてしまいそうなので、先にお礼書き込みとして書き込ませて頂きます。 時計回りで目的角度に回転 という部分も質問には書きませんでしたが実現したい事だったので加えて大変参考になりました。 とてもためになり勉強になっております。 ありがとうございました。(^0^)

関連するQ&A

  • 角度を指定して回転

    スクリプト1 //////////////////////////////////////////////////////////////// onClipEvent (load) { this.x_rotation = 0; d = 1; } onClipEvent (enterFrame) { this._rotation = _rotation += d; if (this._rotation>=90 || this._rotation<=0) { d = -d; } } //////////////////////////////////////////////////////////////// スクリプト2 //////////////////////////////////////////////////////////////// onClipEvent (load) { this.x_rotation = 0; } onClipEvent (enterFrame) { this._rotation = _rotation += 1; if (this._rotation>=90) { this._rotation = -1; } } //////////////////////////////////////////////////////////////// これは、MCが0度~90度の範囲で行ったり来たりするscriptです。 正常に動かないというわけではありませんが、スクリプト2では、90度に達した後いきなり0度に戻ってしまいます。 90度に達したら80度、70度と0度まで戻って欲しいのです。 なぜdを使うのか、スクリプト2ではダメなのかいまいちよく分かりません。 理由と考え方を教えてください。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • Flashのアナログ時計、針の精度を高めたい

    質問失礼します。 僕は、インターネットで調べながらFlashでのアナログ時計を作ったのですが、針が1秒ずつ「カチッ、カチッ」としか動かないのです。(抽象的ですがお許しください) それで、インスタンス名「jikan」に、時間の変数 hour と 分の変数 min を使って以下のように書きました。     jikan = hour * 30 + min / 2; ここまではよかったのですが、これ以上回転角度を細かく(スムーズに)することは不可能でしょうか。 できれば、そのための式を出していただけると非常に助かります。

    • ベストアンサー
    • Flash
  • 時計の長針が短針に重なり、更に追い越すのはなぜ?

    変な質問かもしれませんが、ふと思ってしまったので質問させてください。 時計でなくとも良いのですが、一番聞きやすいと思いこれを例にとりました。 長針と短針、角度で表す事ができますよね。長針がだんだん短針に近づいてくると、角度もだんだん少なくなってきます。そして、11時59分辺りでしょうか、角度も1度位になります。 そして時計は進み、針は更に狭まり、1度の次は0.9度になり、更に0.1度になると次は0.09度、、、そして、数字は無限ですから、永遠にこれを繰り返していってしまい、いつになっても角度0ゼロにならないのではないかと心配してしまいます。 しかし、何事もなく次の瞬間には時計の針はカチっと重なり、その後長針が短針を追い抜いていきます。 また別の表現方法で、例えば、普通の時計で針が重なって見えてしまう程の角度の狭さでも針を十分延長すれば先の方では大きく離れてる事でしょうし、その先の方までも重なる位の角度の狭さになっても更に宇宙規模の数万光年の長さになる針ほどに延長すれば、今尚延長された先の方は大きく離れているだろうと思いますし、(これを繰り返せば永遠に針は重ならないようで心配です) なぜでしょうか、説明がわかりづらかったかもしれませんが、解る方いましたら教えてください。

  • 時計の針の問題

    以下の問題の解法がわかりません。 いま、ある時計が9時を指しています。この時計の長針と短針のあいだの角度が初めて145度になるのは今から何分後ですか? 答 10分後 9時を指しているということは90度で 短針が動くスピードが一時間に30度 10分で5度 180度になるのは9時15分ころ? わかるかた解き方を教えてください。 よろしくお願いします。

  • 回転を使って、ハンドル操作をしたい

    いつも、ありがとうございます。MACOSX、Flash8です。 ゲームの中で、ハンドル操作ができるようにしたいのですがなかなかうまくいかなくて困っています。 マウスの座標から、角度を出してrotationしたいのですが。 MouseDownで EnterFrame、マウスをドラッグしている間にカーソルに 合わせて回転してほしいのです。 1回転する必要はなく45度とー45度の間だけで動かします。 ハンドルのトップを0として、マウス座標から計算した角度をいれることによってできないかと思っているのですが、スクリプトがうまくかけません。 宜しく、お願い致します。

    • ベストアンサー
    • Flash
  • ムービークリップの位置と角度の制御について

    スクリプト初心者です。 ●矢印の形をした、ムービークリップ(mc1)がステージ端まで移動すると跳ね返り、跳ね返る方向に向きを変えるスクリプトで悩んでいます・・。 ●ステージサイズ:400×300  シーン1、1フレーム目にmc1配置。 mc1をシーン1に配置の際、角度45度に。 mc1に下記スクリプトを書きました。 onClipEvent(load){     vx=5;     vy=5; } onClipEvent(enterFrame){ this._x += vx; this._y += vy; if (400 < this._x) { vx = -5; this._rotation=-135; } if (300 < this._y) { vy = -5; this._rotation=135; } if (this._x < 0) { vx = 5; this._rotation=-45; } if (this._y < 0) { vy = 5; this._rotation=45; } } ●ステージ端まで行くと矢印(mc1)が跳ね返る事は、出来たのですが、方向(回転角度)がうまく出来ませんでした・・。 自分でも、これでは、回転角度がうまく行かないと分かってはいるのですが・・。 どなたかお分かりの方おられましたら助けてください! よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • エクセルで16進数に代入したい。

    こんにちは、tuneoです。 エクセルで、テキストボックスを表示して、 そこに例えば「8F」と入力した文字を バイト型変数として式に代入したいのです。 例えば、テキストボックスとボタン1を配置して、 ボタン1を押すと、 バイト型配列変数 Dim a(3) as Byte に a(0)=&h8F というように代入したいのです。 出来れば、テキストボックスに 「8F0E5BAF」と入力すると a(0)=&h8F a(1)=&h0E a(2)=&h5B a(3)=&hAF と代入できるとさらにOKなのですが。。。。

  • ゼンマイ式の柱時計が止まる理由

    ドイツ製のゼンマイ式柱時計を買いましたが、時々止まってしまいます。特に針を合わせたとき、ゼンマイを巻いた時などです。 一回順調に動き始めるとゼンマイの効いている数週間は動き続けるので故障ではないとおもうのですが・・・ 時計の設置角度とか針のいじり方とか何かノウハウがあるのでしょうか?

  • シンボルを回転させたいのですが、うまくいきません。

    はじめまして。Flash初心者です。 Flashを使ったものをWEBサイトに取り入れたいと思いまして、 ネットでモデルとなるものを探してました。 その結果、 http://flashrave.org/as/rotation/index.html のサイトのものを作ってみたいのですが、エラーがでてしまします。 私の最終的にした事。 1,回転させたい画像を、イラストレーターに読み込み、swfで保存する。 2,Flashを開きライブラリから新規シンボルを作成。ムービークリップを選択し、ソースから1で使用したhtmlファイルを読み込んでみる。(読み込まないも試してみる) シンボルの画面から、ファイル→読み込みでswfファイルを読み込む。 画像がでる。 3,シーン1にシンボルが表示される。それを選択して サイトにあった onClipEvent (enterFrame) {  this._rotation += 1; } このソースをアクションに貼付ける。 4,保存して、動かしてみる。 5,すると以下のようなエラーが出力される **エラー** シーン = シーン 1, レイヤー = レイヤー 2, フレーム = 1 :行 2:シンタックスエラー  this._rotation += 1; **エラー** シーン = シーン 1, レイヤー = レイヤー 2, フレーム = 1 :行 3:予期しない '}' があります。 } ActionScript エラー数 :2 報告済みエラー :2 以上です。初心者なので単純なミスかもしれません。Flash8を使っています。 どなたかご教授宜しくお願い致します。

    • ベストアンサー
    • Flash
  • 時計問題

    「短針(時針)は長針(分針)の動きにともない連続的に動き、長針は秒針の動きにともない連続的に動く12時間制の時計がある。この時計において3つの針の角度が完全に一致するのは、0時0分0秒(12時0分0秒)のときのみであることを証明せよ。」 お願いします。