- ベストアンサー
アナログ時計の針のインスタンスが何故か同期して動いてくれない
アナログ時計の秒針に影を付けたくて、該当の秒針のムービークリップをライブラリのウインドウからドラッグして秒針のインスタンスを作りましたが、何故か元の秒針と同期して動いてくれません(停止したまま) 元の秒針は動いてます。 以前は、この方法で作れたと記憶しているのですが・・・ 何がおかしいのでしょうか?
- みんなの回答 (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 に特化した解説書やホームページもいろいろあります。興味がありましたら、研究してみてください。
お礼
secondHandShadowにしてみると、動きました! 前回同様、とても詳しいご説明ありがとうございます!(>_<) 意味がわかりました。 アクション―フレームに書かれているプログラムで動かしているので、ここに針の影の名前で指定されていないと動かないんですね。 勉強しゃなくちゃだめですね。。。 本、2冊ほど買ってきたのですが、知りたいことがそのまま載ってなくて・・・ 聞いちゃった方がその場で解決でき、とてもわかり易いのでほんと助かります。 また困ったら聞いちゃうかもしれませんが、よろしくお願い致します。 すいません。(>_<)