• 締切済み

AS1.0で基準点をそろえたい

AS1.0でduplicateMovieClipを使った複製をした後MC同士の基準点をそろえたいのですがうまくできません 今MC1とMC2というムービークリップをduplicateMovieClipを使って複製しています まず針(MC1)というフレームがありその中に //関数が呼ばれたら描画する setInterval(hari,1000); function hari(){ i ++; duplicateMovieClip("Hari","hari" + i , i); } が書いてありこれは針が1秒ごとに描画されていくという方法です そして円(MC2)というフレームの中にも //関数が呼ばれたら描画する setInterval(EN,1000); function EN(){ i ++; duplicateMovieClip("En","en" + i , i); } がかいてありこれも複製できるようになっています 針(MC1)の中には onClipEvent (load) {       //針の位置をランダムで決めた後描画 this._x = Math.random() * 300 + 50; this._y = Math.random() * 200 + 50; } onClipEvent (enterFrame) {     //針回転     _rotation += 6; } がありこれをベースにして円(MC2)の基準点を針(MC1)にあわせて描画したいのですがやり方がわかりません 自分が考えた方法ですが onClipEvent (load) {       円1の位置x = 針1の位置x       円1の位置y = 針1の位置y } をやったんですがうまくいきません 誰か教えてください

みんなの回答

回答No.1

こんにちは ソフトは何をお使いでしょうか? ソフトによって違うかと思いますが、元となるMovieClipのプロパティで基準点を設定できませんか?

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

関連するQ&A

  • AS2 ランダムに出現する煙

    初めて質問させてもらいます。 FLASHのActionScriptで画面下から画面上へ昇っていく煙をランダムに出現させるASを作成したのですが、動き的には満足しているのですが開始時に画面に一気に煙がですぎになります。 煙のない状態から始めるには何を付け加えればいいのかわかりません。 どなたかご教授願えるかたお願いいたします。 環境 FLASH cs3.AS2にて製作 ソース ・タイムライン ----------------------------------------------- for (var i = 0; i<10; i++) { snow.duplicateMovieClip("snow"+i, i); } ----------------------------------------------- ・mc ----------------------------------------------- onClipEvent (load) { sw = Stage.width; sh = Stage.height; th = this._height; this._x = Math.random()*sw; this._y = Math.random()*sh; speed = Math.random()*4+1; flick = Math.random()*4+1; rotate = Math.random()*1; } onClipEvent (enterFrame) { this._y -= speed; this._x -= flick; this._rotation +=rotate; if (this._y<-869.8) { this._y = 1400; } if (this._x>sw+th || this._x<-th) { this._x = Math.random()*sw; this._y = -th; } } ----------------------------------------------- よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ボタンをロールオーバーした時にMCを複製したい

    はじめまして、よろしくお願いします。 表題の通りですが、 ボタンをロールオーバーした時にMCを複製したいのですが、やり方がわかりません。 body(←ボタン名)を押した時に snow(←複製されるMC名)を噴射するような形にしたいです。 フレーム1に書かれたスクリプト------------------- for (count = 1;count<30;count ++) { snow.duplicateMovieClip("snow" + count , count ); } ----------------------------------------------- 複製されるMC(snow)---------------------------------- onClipEvent(load){ xposition = _root.body._x+75; yposition = _root.body._y+75; scale = Math.random()*30+10; speedx = 12-(scale+Math.random()*30+1)/5; speedy = 12-scale/5; this._x = xposition; this._y = yposition; this._xscale = scale; this._yscale = scale; } onClipEvent (enterFrame){ if(this._y>400){ this._y=yposition; this._x=_root.body._x+75; this._alpha = 100; } this._x+=speedx; this._y+=speedy; this._alpha = this._alpha-5; } ----------------------------------------------- 早急に解決しなくてはならなく、困っています。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 雪の降るスクリプトで、、、

    以前雪の降るスクリプトについて質問させていただいたものです。 フレームには、 for (k=0; k<50; k++) { duplicateMovieClip(this.snow, "snow"+k, k); } で、ムービークリップには、 onClipEvent (load) { //specifies the size of the movie stage movieWidth = 300; movieHeight = 200; //variables that will modify the falling snow i = 1+Math.random()*2; k = -Math.PI+Math.random()*Math.PI; //giving each snowflake unique characteristics this._xscale = this._yscale=50+Math.random()*100; this._alpha = 75+Math.random()*100; this._x = -10+Math.random()*movieWidth; this._y = -10+Math.random()*movieHeight; } onClipEvent (enterFrame) { //putting it all together rad += (k/180)*Math.PI; this._x -= Math.cos(rad); this._y += i; if (this._y>=movieHeight) { this._y = -5; } if ((this._x>=movieWidth) || (this._x<=0)) { this._x = -10+Math.random()*movieWidth; this._y = -5; } } これを再生するといきなりステージに現れてしますのですが、 ステージの上からY座標Oから(上から降るように)するにはどう したらよいでしょうか? onClipEvent (load)に this._y = 0; と付け加えてみましたが駄目でした。 ご教授お願いいたします。

    • ベストアンサー
    • Flash
  • atttachmovie で配置エリアの限定

    actionscript 初心者です。 for文の中で var x:Number = Math.floor(Math.random()*1000)-500; var y:Number = Math.floor(Math.random()*650)-325; _root.space.attachMovie("btn_mc1", "btn_mc"+i,0-i, init); _root.["btn_mc"+i]._x = x; _root.["btn_mc"+i]._y = y; というスクリプトで、btn_mcというmcをランダムに配置しています。 (このスクリプト、間違っているかもです。すみません) 配置位置は今1000px×650pxのステージ中でランダムになっているのですが これを、このステージいっぱいの楕円形があると仮定して その中にだけ、配置するということをスクリプトでできるでしょうか?? つまり、mcがぼんやりと楕円形に集まっている。。というような状態に したいのです。 楕円のマスクをかける、という方法ですと、mcが欠けてしまい、 見栄えがよろしくないです。。 よろしければ、お教えいただけると、幸いです。 お願いいたします m(__)m

    • ベストアンサー
    • Flash
  • duplicatemovieclipについて

    初めまして。 duplicatemovieclipで”maru”というインスタンスを複製する際、クリックする度に次々と複製が増えていくようにしたいのですが、新しいインスタンス名と深度を変えていくつか同じスクリプトを打っても一つしか表示されず、場所が移動するだけになってしまいます。 on (release) { maru.duplicateMovieClip("maru2",2);//3、4と増やす _root["maru"+_root.dep]._x = Math.random()*Stage.width; _root["maru"+_root.dep]._y = Math.random()*Stage.height; } それから、便宜上座標をランダムにしているのですが、ステージ上でクリックした場所に複製されるようにする事は可能でしょうか? よく理解していないので見当違いな事をしているかもしれませんが、どうか教えて下さい・・・。

    • ベストアンサー
    • Flash
  • 雪が降るスクリプトについて

    雪がふるスクリプトを http://www.kirupa.com/developer/mx/snow.htm で拾ったのですが、flashplayer6対応のようで、 これをflashplayer7対応にするにはどうしたらよいのでしょうか? フレームには、 for (k=0; k<50; k++) { duplicateMovieClip(this.snow, "snow"+k, k); } で、ムービークリップには、 onClipEvent (load) { //specifies the size of the movie stage movieWidth = 300; movieHeight = 200; //variables that will modify the falling snow i = 1+Math.random()*2; k = -Math.PI+Math.random()*Math.PI; //giving each snowflake unique characteristics this._xscale = this._yscale=50+Math.random()*100; this._alpha = 75+Math.random()*100; this._x = -10+Math.random()*movieWidth; this._y = -10+Math.random()*movieHeight; } onClipEvent (enterFrame) { //putting it all together rad += (k/180)*Math.PI; this._x -= Math.cos(rad); this._y += i; if (this._y>=movieHeight) { this._y = -5; } if ((this._x>=movieWidth) || (this._x<=0)) { this._x = -10+Math.random()*movieWidth; this._y = -5; } } とあるようですが。

    • ベストアンサー
    • Flash
  • FlashMXアクションスクリプトの記述で分からないのですが…

     現在FlashMXのアクションスクリプトを勉強中で購入した書籍に、マウスカーソルを動かすとカーソルに着いていき波紋が広がるというのがあるのですが、マウスカーソルがステージ上からなくなっても波紋が残ってしまいます。この波紋を残さないようにする記述方法をどなたか教えて下さい。WindowsXP環境です。 onClipEvent (load) { if (_name == "mc") { _visible=false; max = 10; //複製する個数 for (i=0; i<max; i++) { this.duplicateMovieClip(i, 100+i);//複製 } } } onClipEvent (mouseMove) { if (_name == "0") {//一つ目のmcはマウスの座標とする _x = _parent._xmouse; _y = _parent._ymouse; } else {//それ以後は自分の名前から-1引いたインスタンス名の座標を取得する _x = _parent[int(_name)-1]._x; _y = _parent[int(_name)-1]._y; } updateAfterEvent(); } と記述されています。インスタンスmcはシェイプトゥイーンで、円が徐々に大きくなり、消えていくアニメーションを設定しています。

  • 【as3.0】for~文で変数に連番を適用したい

    初めてAS3.0を使用してゲームを作成しています。 5枚のムービークリップの位置をシャッフルしたいのですが、 シャッフルさせるイベントをそれぞれのムービークリップに適用させることが出来ずに困っています。 以下、現在のスクリプトです。 import flash.events.Event; var mixarrayX:Array = [0,60,120,150,200];//x位置のパターン var mixarrayY:Array = [0,20,50,80,90];//y位置のパターン this.addEventListener(Event.EXIT_FRAME,syaful); function syaful(e:Event):void { //ランダムで位置のパターンを抜き出す var syafulPTX1:int = (Math.random() * mixarrayX.length); var syafulPTY1:int = (Math.random() * mixarrayY.length); //カードの位置【x,y】を当てはめる var mix1:Array = [mixarrayX[syafulPTX1], mixarrayY[syafulPTY1]];   //MC1に抜き出した位置を適用させる MC1.x = mix1[0]; MC1.y = mix1[1]; //今回のパターンを配列から抜き出す。 syafulPTX1 = mixarrayX.shift(); syafulPTY1 = mixarrayY.shift(); } removeEventListener(Event.EXIT_FRAME,syaful); } for文を使って各変数の「1」等のナンバーにiを適用させて、ループさせれば良いとは思うのですが、 ["MC"+i]等と入力してもエラーになってしまいます。 for文で変数を宣言する場合の正しい書き方を教えていただけると助かります。 何卒、よろしくお願い致します。

    • ベストアンサー
    • Flash
  • ランダムな動きのスピード制御(Flash)

    スクリーンに小花をいくつか配置し、それがスクリーン上をゆらゆらと動くムービーを作りたいと思っています。 ランダムな動きの方が面白いので、本を見ながら下記の様なアクションスクリプトを小花の形のMCに書きました。 しかし、移動速度がものすごく速く、チラチラするだけで全然キレイじゃありません(ToT) どう言うスクリプトを書き加えれば、スピード制御できるでしょうか? onClipEvent(enterFrame){ this._x+=Math.floor(Math.random()*101-50); this._y+=Math.floor(Math.random()*101-50); }

  • AS3でattachMovie()どうするの?

    FlashCS4でAS3.0です。 http://hakuhin.jp/as/block.html 上のサイトを見ながらブロック崩しのプログラム練習をしています。 壊すブロックについてなのですが、 ブロックのMCをライブラリでリンケージして書き出して、 下のようにしてステージに並べました。 for (var i:int = 0 ; i<32; i++){ var mc:block_class = new block_class(); mc.name = "block"+i; mc.x = i % 4 * 40 +40; mc.y = Math.floor(i/4) * 15 + 25; stage.addChild(mc); } ここからがわからないところです。 ボールがブロックに当たったら消える、という文を書こうとして for (var i = 0; i<32 ; i++){   if (ball_mc.hitTestObject(mc)){ mc.visible=false;   } このような形にしているのですが、 複製したすべてのブロックに適応させるにはどうしたらよいかわかりません。 どうもAS2.0のときはattachMovie()やeval()を使ってできたことみたいなのですが・・・ どうぞよろしくお願いします。

    • ベストアンサー
    • Flash