• ベストアンサー

回転するムービークリップについて

アクションスクリプトを勉強中なのですが。。。 全然分かりません。 円の周りに30個の異なるシンボルを等間隔で配置し、円自体を回転させたいと思います。 その際に、シンボルのスタート位置を90度の座標位置として、-90度の座標位置に来た時に元の大きさの4倍に拡大。 -90度過ぎたら、90度の座標位置に戻るまでに元のサイズに縮小したいのです。 イメージとしては、以下のサイトの商品情報のように奥行きを持たせたいのです。(マウスの位置で回転速度が変わるアクションは考えていません) http://www.otsuka.co.jp/poc/docs/main.html

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

アクションスクリプトを勉強中ということでしたら、 ActionScript は共通ですし理論も共通なので Adobe Flash 用のサイトではありませんが次のURLを参考にされてみてはいかがでしょうか。 「簡易3D回転メニュー」 http://suzupara.iinaa.net/3d_rotation.html > (マウスの位置で回転速度が変わるアクションは考えていません) ということでしたら、 上記ページの 「説明サンプル3」 までで良いということになります。 上記ページでは、 「説明サンプル1」 で1つのもの(MC)を真円に回転させて、 「説明サンプル2」 で1つのもの(MC)を楕円状に回転させて、 「説明サンプル3」 で複数のもの(MC)を楕円状に回転させる。 というように、 実際の作成手順を追って説明してあります。 また、 ご質問で書かれていらっしゃるURLの「商品情報」も、 上記のページに書かれているレベルの回転で終わっています。 ------------------ さらに透視変換を使って遠近感を出すレベルになると次のページになります。 「本格3D回転メニュー(透視変換・投影)」 http://suzupara.iinaa.net/3d_rotation_r.html ご使用の Flash のバージョンを書かれていらっしゃいませんが、 ここまででしたら Flash MX でも作成できます。 ------------------ さらにぼかしをかけて空気遠近法まで演出する場合は次のページになります。 「3D回転メニュー(BlurFilter)」 http://suzupara.iinaa.net/3d_rotation_cc.html ただし Adobe Flash でここまでするには(BlurFilterクラスを使うには)、 Flash 8 以上が必要になります。 ~・~・~・~・~・~・~・~・~ 質問者さんのご年齢などがわかりませんが、 ActionScript 以前に、ある程度(高校レベル)の数学は必要となります。 もし三角関数を習われていなければ、 ActionScript よりも前に数学をする必要があるということです。 それなしでは理解も応用も無理です。 私自身も、 3D風に回転させるものを作るときだけでなく、 実際に他のものを作る場合でも、 普通はこんな感じで少しずつ考えたり調べたりして着実に作成していきます。

yog-sothot
質問者

お礼

お礼が遅くなりまして大変申し訳ございませんでした。 非常に分かりにくい質問を汲み取って正確にご回答いただきありがとうございました。まさにしたい事は、これでした。 ただ、残念な事に私のレベルがこの内容に追いついておりません。 おっしゃる通り、ActionScriptは数学の知識も必要ですね。 私はいい歳ですが、高校レベルの数学は忘れております。 いつも分からないままにサンプルを写したりしているので、応用力に結びついていないので、基礎から勉強し直します。 ありがとうございました。 また何かあればよろしくお願い致します。

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

関連するQ&A

  • Cで回転プログラムの高速化を

    Cで、90枚の画像を、それぞれ0度から90度まで回転させるプログラムを作りました。 回転の処理は重く時間がかかるため、 それぞれの角度の回転後の位置を配列に格納して、 その値を参照して画像を回転させていこうと思ったのですが、 例えば、画像が300*300としたら回転座標を入れる配列は2次元で2つとりますよね? kaitenX[90][300] kaitenY[90][300] これで、例えば元画像を50度回転させる時のx,y座標が10,50の所の回転後の座標は kaitenX[50][10]の値(回転後のx座標の値) と kaitenY[50][50]の値(回転後のY座標の値)を 参照さしてやればいいと思うのですが、 このとき、回転後の画像をtemp[300][300]という回転後の出力用配列に 代入していくとき、 どうやって代入していけばよいでしょうか? まさか、 for(r=0;r<90;r++) //rは角度情報 for(i=0;i<300;i++) for(j=0;j<300;j++) { temp[i][j] = Gengazo[r][kaitenx[r][j]][kaiteny[r][i]] } なんて風には書けませんよね^^;(自分で一応試したけどダメでした) 回転後の座標を格納するまでは出来ると思うのですが、 格納後、どうやってその値を参照させて、格納させていけばいいか わかりません。 教えていただけませんでしょうか? また、もっと高速化できる効率の良い方法があれば教えて下さい。

  • 3D表現

    Flashで3D表現しようと奮闘しています。 といいましても、4つのメニューボタンが手前から置くにくるくると回転するというだけの表現です。 マウスカーソルの位置によって回転スピードは加速する仕掛けです。 そこで色々調べてみたのですが、 そもそもx軸とy軸しかFlashは持ちえていないのに、そこに立体表現をアクションスクリプトで組み込むとすれば、 奥行きのZ軸はどのように考えればいいのでしょうか。 cosシーターが、回転するボタンのx座標を表すとすれば、 sinシーターが何をあらわすことになるのでしょう? 奥行きになるのでしょうか? どうも二次元上の三次元表現というのがピンと来なくて困っています。

    • ベストアンサー
    • CSS
  • FLASH アクションスクリプト

    画面のサイズを拡大縮小しても 常にセンターに表示させる アクションスクリプトで質問がございます。 back_mcが【背景】 main_mcが【オブジェクト】 _root.main_mc._x = ( Stage.width - _root.main_mc._width ) /2; _root.main_mc._y = ( Stage.height - _root.main_mc._height) /2; このアクションスクリプトで【オブジェクト】が最初から常にセンター表示になる事は分かるのですが、例えば座標x600 y500で始まるようにするのはどうしたら良いのでしょうか。 下記のアクションスクリプトでは、【オブジェクト】がx600 y500の位置に最初はあるのですが画面のサイズを拡大縮小してもピクリとも動きません。 Stage.align = "TL"; Stage.scaleMode = "noScale"; Stage.addListener(this); this.onResize = function() { _root.main_mc._x = 600;( Stage.width - _root.main_mc._width ) /2; _root.main_mc._y = 500;( Stage.height - _root.main_mc._height) /2; _root.back_mc._width = Stage.width; _root.back_mc._height = Stage.height; } this.onResize(); いまいち分かりにくい質問ですが伝わりますでしょうか。 分かる方、宜しくお願い致します。

    • ベストアンサー
    • Flash
  • 90°回転で要する直結が1.35m。180°が1.

    90°回転で要する直結が1.35m。180°が1.7m。360°で1.8m。 この場合、90°回転から180°回転になったら直径は何倍になりますか? 90度、180度、360度ごとにどのように使用直径が拡大していますか? これらに法則性はありますか? これらの条件から270°回転の円の直径を求めれますか?

  • 3次元での回転による座標変換

    3次元での回転による座標変換に関して質問があります. X軸,Y軸,Z軸の直交座標系があるとします. この座標系において,ある位置ベクトル(a1,b1,c1)がX軸,Y軸,Z軸と成す角度は,θx,θy,θzは,ベクトルの内積から算出可能だと思います. θx=a1/sqrt(a1^2+b1^2+c1^2) θy=b1/sqrt(a1^2+b1^2+c1^2) θz=c1/sqrt(a1^2+b1^2+c1^2) X,Y,Zの直交座標系を回転させて,この位置ベクトルの向きを基準としたX'軸,Y'軸,Z'軸による新しい直交座標系を設定するには,どのようにすればよいでしょうか? θx,θy,θzと各軸での回転角度は違うものという認識でいいのでしょうか? 元の座標系において,各軸回りに順番に回転させればいいかと思うのですが,どうもイメージがつかみきれません. よろしくお願い致します.

  • ベクターワークス 図形と文字の同時拡大縮小とシンボルの拡大縮小

    ベクターワークス12.5 WINを使用しています。 図面を書いていて、例えばある形を単純に半分の大きさに縮小しようとすると、図形は縮小されても書き込んでいる文字は元のポイント数のままで残ってしまいます。イラストレーターなどでは文字や線の太さまで拡大縮小も同時にできるのですが、ベクターワークスにはそういう機能は無いものなのでしょうか。  また、シンボル登録してある図形(便器など)は、図面を拡大縮小するとシンボルだけはそのままのサイズで残ってしまいます。図面といっしょにサイズを変えることはできないものでしょうか。

  • 回転運動の減速停止方法

    こんにちは。以下の動作のアクションスクリプトを教えて 頂きたいと思い、書き込み致しました。 「回転 停止」というキーワードで過去質問を検索しましたが、 見つけることができませんでした。 よろしくお願い致します。 --------------------------------- http://hakuhin.hp.infoseek.co.jp/main/as/move.html#MOVE_04 ↑こちらで紹介されております「円の動きを作りたい 」で、  ある一定の角度(例えば300度とか)まで回転したら停止する  動きを制作したいと思っております。 また、停止する際に、 http://hakuhin.hp.infoseek.co.jp/main/as/move.html#MOVE_02 ↑こちらで紹介されております「減速(摩擦)する動きを作りたい 」  で、減速させて停止する動きが付けられればと思っております。 --------------------------------- 「300度回転してから減速して停止」という動きであれば、 上記サイトで公開されておりますスクリプトの形式でなくても 問題ありません。 お手数ですが、よろしくお願いします。 最後にこちらの環境です。 ------------------------ アクションスクリプト経験 :回転運動、曲線運動などは初めて挑戦。 マシン環境 :WinXP FLASH8 ------------------------ 以上、よろしくお願い致します。

    • ベストアンサー
    • Flash
  • 回転後の座標について 5軸加工機

    今年中に、OKKの縦型マシニング機械(三菱Neomatic)に日研のNCインデックス(角度と回転ができる仕様)を載せる予定です。 使いやすくするため、テーブル回転後の座標を、変数で計算ができるプログラムを作っているのですが、うまくいかず頭をかかえてる毎日であります。 そこで、皆様の力をお願いしたく質問させていただきます。 私の希望としては、 #101=回転させたいG54からのX座標(+OR-) #102=回転させたいG54からのY座標(+OR-) #103=回転させたいG54からのZ座標(+OR-) #104=回転C(+OR-) #105=角度A(+OR-) 上記、G54座標中心からずれた数値(#101から#103)から、回転&角度(#104、#105)の数値を変更するだけで、ひねった後の座標を計算し、その答えをG55の座標系に入れるプログラムを作っているのですが、いくつか問題がある為うまくいきません。 ◎G54のワーク座標がテーブル回転中心ではない。 ◎G54のワーク座標の中心位置から、さらにずらした位置を回転させたい。 ◎X,Y,Z及び、回転軸C、角度軸A 共にプラス数値とマイナス数値があり計算が困難。 ◎回転軸C、角度軸A 共に90度以上回る。 この様な原因があり、電卓で計算した数値と変数で計算させた数値が違い、困った次第であります。 機械の特徴としては、 ◎機械座標はマイナス数値 ◎テーブル回転中心座標は#501=X #502=Y #503=Z に登録済み。 ★☆まとめ☆★ #5221=G54X座標 #5222=G54Y座標 #5223=G54X座標 を使い #101=回転させたいG54からのX座標(+OR-) #102=回転させたいG54からのY座標(+OR-) #103=回転させたいG54からのZ座標(+OR-) #104=回転C(+OR-) #105=角度A(+OR-) で移動させた数値の答えを #5221=G54X座標 #5222=G54Y座標 #5223=G54Z座標 に登録したい。 文章が下手で申し訳ありませんが、どなたか変数を使い回転後の座標が計算できるプログラムをお教え下さい。 不明な点等ございましたらお教え下さい。 大変困っているので宜しくお願いします。 まとめの部分を下記の様に修正いたします。 ★☆まとめ☆★ #5221=G54X座標 #5222=G54Y座標 #5223=G54X座標 を使い #101=回転させたいG54からのX座標(+OR-) #102=回転させたいG54からのY座標(+OR-) #103=回転させたいG54からのZ座標(+OR-) #104=回転C(+OR-) #105=角度A(+OR-) で移動させた数値の答えを #5241=G55X座標 #5242=G55Y座標 #5243=G55Z座標 に登録したい。

  • マウスオーバーで最前面にする方法

    お世話になります。 質問の内容はタイトルそのままなのですが、シンボルをオンマウスで最前面にする方法を探しています。 同じようなシンボル(というかボタン)が多数ありまして、シンボルにマウスが触れると拡大したり縮小したりする仕掛けを作りたいのですが、一部が近くにあるシンボルに隠れてしまいます(そのシンボルがアクションしたいシンボルより前面にあるからです)。 レイヤーはすべて一緒の所に入れてあります。 http://www.kousokubus.net/ 上記のサイトのFlashのような感じです。 【まとめ】 シンボルにマウスが触れると最前面にするActionScriptがあればお教え下さい。 (AC3以外で)

    • ベストアンサー
    • Flash
  • VBを使って行列による3Dの図形やグラフを描画するのですが・・

    本をよんでいるのですが自分の創造した図形の3D座標を2Dの座標に変換する仕方やその点の座標をどのように行列に当てはめるのかがわかりません。行列での回転・縮小拡大の仕方などが・・。 3Dの描画や行列に詳しい方教えてほしいです。 もし詳しくなくても関係のあるVBサイトがあれば教えてほしいです。 お願いします。