• ベストアンサー

アナログ時計の針のインスタンスが何故か同期して動いてくれない

アナログ時計の秒針に影を付けたくて、該当の秒針のムービークリップをライブラリのウインドウからドラッグして秒針のインスタンスを作りましたが、何故か元の秒針と同期して動いてくれません(停止したまま) 元の秒針は動いてます。 以前は、この方法で作れたと記憶しているのですが・・・ 何がおかしいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.1

http://okweb.jp/kotaeru.php3?q=972510 の続きですよね。 最初に配置されていた秒針の影のインスタンスは削除してあって、新しいインスタンスを配置するものとして説明します。 配置した秒針の影のインスタンスを選択して、「プロパティ」パネルを見てください。 パネルの右上の方に「ムービークリップ」と書かれたリストがあり、そのすぐ下に、「<インスタンス名>」という仮の文字が入っている項目があるかと思います。 ここに、  secondHandShadow と入力してみると、いかがでしょうか。 前回、針の動きは ActionScript というプログラムのようなもので付けていると書きました。今回、秒針の影が動かなかった原因は、おそらく、その ActionScript と関係があると思います。 「 actions 」レイヤーに、「a」のマークがあるフレームがあります。ここを選択して、右クリック( Mac では control +クリック)でメニューを出し、「アクション」を選んでみてください。 英語の暗号のような文章がズラッと出てきて、訳が分からないかも知れませんが、とりあえず細かい意味はさておき。 最後の行辺りに、  secondHandShadow._rotation = myDate.getSeconds()*6; という記述があります。これが、秒針の影を動かしていたからくりのタネです。 先ほど入力したインスタンスの名前は、ActionScript でインスタンスを操作する時に必要になります。 Flash に付いていたサンプルでは、秒針の影には secondhandshadow という名前が付いています。(全部小文字になっていてもエラーにはなりませんが、ActionScript でインスタンス名などを表記するときは、できるだけ大文字・小文字は正確に書くようにしましょう)この名前を元にスクリプトが実行され、秒針とともに影が動いていました。 それが、秒針の影に代わる別のインスタンスを配置したため、secondhandshadow インスタンスがステージからなくなり、秒針の影を動かすために書かれていたスクリプトも無効になってしまったのです。 一方、新たに配置したインスタンスを動かすためのスクリプトは書かれていないので、こちらは動かないというわけです。 しかし、インスタンスを取り替えても、設定してある ActionScript までは削除されません。新しいインスタンスに元のインスタンスと同じ名前を付けると、影を動かしていた ActionScript をそのまま利用できます。 前回はシンボルの中身を他の画像に取り替えただけで、ステージのインスタンスそのものは置き換えませんでした。いわば、針の外観を他のものに取り替えただけの話です。 もし、他の針も秒針の影と同様に、インスタンス自体を取り替えて全く別のものを配置するのでしたら、  時針 → hourHand  分針 → minuteHand  秒針 → secondHand  時針の影 → hourHandShadow  分針の影 → minuteHandShadow 新しく配置したインスタンスには、このようなインスタンス名を付けてください。でないと、今回と同様の理由でスクリプトが実行されなくなり、せっかく配置したインスタンスが全く動かなくなってしまいます。 ActionScript は奥が深く、ここでは書ききれません。 プログラミング言語の一種ですので覚えることも多く、最初は取っ付きにくいですが、使いこなせれば、タイムラインではできない複雑なアニメやゲーム、サーバーと連携して訪問数カウンターや掲示板なども作れるようになります。 ActionScript に特化した解説書やホームページもいろいろあります。興味がありましたら、研究してみてください。

honey_sweets
質問者

お礼

secondHandShadowにしてみると、動きました! 前回同様、とても詳しいご説明ありがとうございます!(>_<) 意味がわかりました。 アクション―フレームに書かれているプログラムで動かしているので、ここに針の影の名前で指定されていないと動かないんですね。 勉強しゃなくちゃだめですね。。。 本、2冊ほど買ってきたのですが、知りたいことがそのまま載ってなくて・・・ 聞いちゃった方がその場で解決でき、とてもわかり易いのでほんと助かります。 また困ったら聞いちゃうかもしれませんが、よろしくお願い致します。 すいません。(>_<)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ムービークリップとインスタンス

    「ライブラリ内にあるのがムービークリップで、それをステージに配置したものがインスタンスである。」このように理解しているのですが、これは間違いでしょうか? 1、「MCを一つ作成し、それをステージ上に3カ所に配置し、各"MC"に01、02,03とインスタンス名を付けた。」 2、「MCを一つ作成し、それをステージ上に3カ所に配置し、各"インスタンス"に01、02,03とインスタンス名を付けた。」 上記の場合どちらが正しいのでしょうか? ムービークリップとインスタンスについてご教授ください。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • アナログ時計とは? アルカリとマンガンどっち?

    アナログ時計とは秒針が連続して動くか断続して動くかにかかわらず、 360度回る3本の針で時刻を示すものは皆アナログ時計ですか? 私の家の電波掛け時計は秒針が断続して動くものですが、 説明書にはマンガン電池使用を指示しています。 一昨年の12月に秒針が動きにくくなっているのに気が付きました。30秒までは秒針が下に落ちていくので力がいらないけど、特に50秒から辺りは電池が弱くなると秒針を上に持ち上げる力がなくなるのか、別のクオーツ掛け時計でもよく見ることですが、この時計では初めてのように思いました。 しかし電池は替えてからまだ新しい記憶があり調べると10ヶ月前に替えていました。 時計などはマンガン電池の方が長く持つと聞いたのでマンガン電池に変えていたのに、買ったのはこの時点で13年3ヶ月前で、電池交換をそんなに何度もしたように思えないので、たった10ヶ月で交換とは、高くてもアルカリ電池の方が実質安いのではと不審に思いつつまたマンガン電池に替えました。 説明書を見るとマンガン電池使用を指示あるいは推奨しており、書いた記憶も消えていますがマンガン電池で2年余もつとメモしているのも驚きです。 今年になって今度は1年たっていますが、また秒針が動きにくくなりました。 今度は放置しておくと、正常に動くようになりました。マンガンなので秒針が動かない間に休んでいて力がまた復活したのでしょうか? ただし、電波受信の時に秒針は12時の位置でスタンバイしてないといけないのに、それができてなく(こういう現場は目撃しています)秒針は電波時計なのに正確ではありません。分針の位置は電波時計レベルで正確です。つまり、秒針と分針の関係が狂っています。 こういう状況ですが、さてこの時計にはマンガン電池かアルカリ電池か、どっちが経済的なのでしょう?

  • 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
  • thisをインスタンス名に変えたらムービーが動かない

    Flash8です。タイムライン上に、 ボタン(インスタンス名 b1_btn) と ムービークリップ(インスタンス名 test_mc) を配置しました。 次に、このボタンインスタンスに以下のイベントハンドラを記述しました。 ----------------- on (press) { this.stop(); } ----------------- 実行すると、ボタンを押せばムービーが停止します。 で次に、上記の記述を以下のように変えます。 ----------------- on (press) { test_mc.stop(); } ----------------- 実行すると、ボタンを押してもムービーが停止しません。 なにがイケないのでしょうか?

  • カチカチと音のしないアナログ目覚まし時計

    秒針の音がしないアナログ目覚まし時計を探しています。 わりと良く見かける、ドイツの会社のその様な時計を購入しましたが、安かった(小さい物で1000円、白、黒あり)のとMADE IN CHINAだったからか、一年程で音がするようになってしまいました。 今年ドイツかスイスに行く予定なので、双方の国の時計で良い物をご存じでしたら教えて下さい。もちろん日本製でも他の国でも結構です。 出来れば ・電池式 ・価格は2万程 ・アフターサービスも充実していればなお良いです また、それらを販売している場所、ネットサイト、該当商品は無いけど信頼のおける時計会社等何でも結構ですので、何か情報を頂けたら幸いです。 宜しくお願いします。

  • Flash8のムービークリップ内で不具合があります。

    下記について、わかるかた教えてください! ムービークリップ内で編集を行うときに、シンボル化したものを 入れると、なぜか同じものが並んで2つで入ってきてしまいます。 私が行った操作 ・オブジェクトAをムービークリップにシンボル化した。 ・インスタンスAをダブルクリックして中に入り、インスタンスAのアニメーション編集を行った(ちなみにこのインスタンスはある理由があって分解して編集してます。)。 ・同じ階層に別のインスタンスを追加したかったので、シンボル化したオブジェクトをライブラリからドラッグ。 ---ここでなぜか上記のとおり、新たに加わったインスタンスが 二つになるのです。いくつかシンボル化したオブジェクトがあるのですが、どれを試しても二つになります。シンボルの種類はムービークリップでもグラフィックでもボタンでも同様の現象が起こります。 この二つのインスタンスは位置は離れているのですが、グループ化されているように一緒になってます。 本当は画像が添付できればわかりやすいのだと思いますが、 上記の説明でわかりますでしょうか。 困っております。よろしくお願いします。

  • 時計の調整

     まだ購入して間もない時計があるのですが、秒針が竜頭で止めにくくなってきました。 セイコーのキャリバーY675搭載です。メンテナンスする程の期間も使っていないし(一ヶ月)、時計屋さんに見てもらうのはおかしいでしょうか?日差±2秒(当たりくじでした)と安さから信じられない精度で満足していたのですがこれでは元も子もないです。どうしましょう?  逆剣と言うのは時計に負担がかかりますか?パテック・フィリップ等では逆剣で簡単に秒針が止まると聞きました。ムーブメントにポリシーがあるからあえて停止機能も付けていないとか…。やはり、安物では部品がダメになってしまいますかね?デザイン(渡辺力さん)が気に入っているし日本製だから長いこと使いたいと思っています。

  • this._x と this._yをドラッグした後の値に変更したい

    バージョンはFLASH8です。 attachMovieメソッドでインスタンスを作成しました。 インスタンスは複数あり、作成した後にドラッグして場所を入れ替えます。 それぞれのインスタンスを衝突判定します。赤い箱のムービークリップに衝突したら、インスタンスは箱に入り、青い箱に衝突したら元の場所に戻るようにしたいのです。 どうしても、その「元の場所」が移動した後の座標ではなく、最初にインスタンスを作成した座標になってしまうので、困っています。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • Flash
  • flash ウインドウの大きさを変更しても常に定位置

    falsh8でアクションスクリプトのバージョンは1でわからないことがあるので教えてください。 ステージ上に、 ムービークリップの インスタンス名 mc1 と ムービークリップの インスタンス名 mc2 と ムービークリップの インスタンス名 mc3 を配置しております。 ブラウザのウインドウの大きさを変更しても常に、 mc1 はウインドウの最上部に表示 mc2 はウインドウの中央部に表示 mc3 はウインドウの最下部に表示させたいのですが、どういうスクリプトを書けばよいでしょうか? 教えてください、よろしくお願いします。

  • インスタンス名に変数を代入 (Flash)

    複数個あるインスタンスをその都度変数を参照して希望する一つのムービークリップの可視、不可視を制御したいと思っています。 var Pagecount:Number = 0; 1フレーム目に↑を記述して変数を定義し、その変数の状態によってある希望するムービークリップの可視、不可視を制御したく、該当箇所に以下のようにASを記述しました。 (変数には条件によって1~50が代入されています。) btn_[Pagecount].visible = true; 上記の文ではエラーとなってしまいムービークリップを制御出来ませんでしたので どなたか正しい記述の仕方を教えていただけないでしょうか。 Flash、アクションスクリプト共に初心者の為、見当違いな記述をしているかと思いますが 解決策が分からず困っておりますので助けていただけましたら幸いです。 何卒、宜しくお願い致します。 ※AS3、Flash CS5、Mac環境となります。

    • ベストアンサー
    • Flash