- ベストアンサー
マウスに追随するMC
マウスに追随するMCがあります。そこまではスクリプトで書いています。 そのMCをウネウネした縦のガイドラインに沿わせて、マウスのY座標のみで動かしたいのですが、どうしてもまっすぐにしか移動してくれません。 どうしたらよいでしょうか? よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- マウス追随させるMCの追随する範囲を指定したいです。
FLASHのマウス追随action script では、 swf画面のどこにマウスがあっても、 どこまでも追随してきますが、 追随する範囲を指定したい場合は、 どのようにしたらよいのでしょうか? 例えば、 パンダの黒目だけがマウスを目で追う。 といったようなことがしたいです。 現状では、黒目が白目から飛び出して(笑) どこまでも黒目だけがマウスを追いかけていってしまっています。 (それはそれでおもしろいけど、これがしたいわけではないのです) FLASHのver は、CS3です。 ASのver は、2でも3でもどちらでもよいです。 よろしくお願いします。
- 締切済み
- Flash
- マウスの追随でyの動く範囲を指定したい
初心者ですが、FlashCS3を使っています。 800×600のステージ内の指定した範囲でマウスの追随をしたいので教えてください。 一応、y方向のみに動くマウスの追随効果は作成できたのですが、 y方向に画面いっぱいに追随してしまうので、上から150px~300pxくらいの範囲で 動くだけの操作をしたいです。 ちなみに今途中までてきている追随効果のAction Scriptは下記です。 onClipEvent(enterFrame){ this._y=_root._ymouse; } これに何を記述したら指定範囲のみ追随するようになるでしょうか?
- ベストアンサー
- Flash
- ポインタをmcに追随させるには?
ポインタをmcに追随させるには? mcをスライドさせるTween使用のas2サンプルを、 クリックをロールオーバーにして、クリックにリンクを設定するものにアレンジ。 [フレーム] import mx.utils.Delegate; import caurina.transitions.Tweener; function tw(_x1:Number,_x2:Number,_x3:Number,_mc1:MovieClip,_mc2:MovieClip,_mc3:MovieClip):Void{ Tweener.addTween (_mc1,{_x:_x1,_y:80,time:2,transition:"easeOutBack"}); Tweener.addTween (_mc2,{_x:_x2,_y:80,time:2,transition:"easeOutBack"}); Tweener.addTween (_mc3,{_x:_x3,_y:80,time:2,transition:"easeOutBack"}); } panel01_mc.onRollOver = Delegate.create (this,function():Void{ tw (200,300,100,panel01_mc,panel02_mc,panel03_mc); }); panel02_mc.onRollOver = Delegate.create (this,function():Void{ tw (100,200,300,panel01_mc,panel02_mc,panel03_mc); }); panel03_mc.onRollOver = Delegate.create (this,function():Void{ tw (300,100,200,panel01_mc,panel02_mc,panel03_mc); }); [ムービークリップ] on(rollOver){ topDepth = _parent.getNextHighestDepth(); this.swapDepths(topDepth); } on(release){ getURL("index.html"); } 問題は、前面中央にスライドするmcに連動して、 中央からスライドする別のmcにポインタが反応(ロールオーバー)すること。 ロールオーバーでmcがスライドした際、 ともにポインタを自動的に追随させる方法がありましたらお教えください。 もちろん別の解決方法があれば、そちらの方をお教えいただければ助かります。 当方はas3ではタイムラインのコントロールもおぼつかないレベルです。
- 締切済み
- Flash
- マウスを追いかける
ムービークリップがマウスを追いかけるというようにしたいのですが、追いかけるムービークリップが別のシンボルの中にあると座標がずれるようで、このずれをなくしたいのですがどのようにすればよいのでしょうか? 詳しくは、シーン1にシンボル(ただの図形と追いかけてほしいムービー:mc1)を置いて、mc1に下記のスクリプトを書きました。 -------------------------------------------- onClipEvent (load) { _root.mc1.startDrag(true); x = _root._xmouse; y = _root._ymouse; } onClipEvent (enterFrame) { _x += (_root._xmouse-_x)/4; _y += (_root._ymouse-_y)/4; } --------------------------------------------
- ベストアンサー
- Flash
- mcのドラッグアンドドロップ処理について
現在、http://okwave.jp/qa3589973.htmlのドラッグアンドドロップを使用させて頂いております。 上記のスクリプトですと、mcからマウスを放したとき(falseのとき)、瞬時にmcの動作が止まるようになっているのですが、これを目的の座標に移動しつつゆっくりと止まっていくようにするには、どのようにスクリプトを書き換えればよいのでしょうか? また、このmcの中にボタンを配置してリンクを張る場合、どういった方法でスクリプトを書けばよいのかもお教え頂けると助かります。 お分かりの方がいらっしゃいましたらご教授いただけると幸いです。 よろしくお願い致します。 // この MC が表示されたとき onClipEvent (load) { // 重さの変数 weight を設定(変えてください) weight = 10; // ●x座標の最小値 min_x を設定(変えてください) min_x = 100; // ●x座標の最大値 max_x を設定(変えてください) max_x = 300; // ●y座標の最小値 min_y を設定(変えてください) min_y = 50; // ●y座標の最大値 max_y を設定(変えてください) max_y = 350; // クリックしたかどうかの変数 click_flag を false にする click_flag = false; } // この MC を押したとき on (press) { // クリックしたかどうかの変数 click_flag を true にする click_flag = true; // ★押した座標を保存 pos_x = this._xmouse; pos_y = this._ymouse; } // この MC をとにかく放したとき on (release, releaseOutside) { // クリックしたかどうかの変数 click_flag を false にする click_flag = false; } // 1フレーム進む時間毎に随時実行 onClipEvent (enterFrame) { // click_flag が true の時だけ if (click_flag) { // この座標を 1/weight ずつ ★マウス座標-押した座標 に近づける this._x += (_root._xmouse-pos_x-this._x)/weight; this._y += (_root._ymouse-pos_y-this._y)/weight; // ●設定した x座標最小値以下の場合 if (this._x<=min_x) { this._x = min_x; } // ●設定した x座標最大値以上の場合 if (this._x>=max_x) { this._x = max_x; } // ●設定した y座標最小値以下の場合 if (this._y<=min_y) { this._y = min_y; } // ●設定した y座標最大値以上の場合 if (this._y>=max_y) { this._y = max_y; } } }
- ベストアンサー
- Flash
- 複製したMCを指定した座標へ配置したいのですが
こんにちは。 初歩的な質問で申し訳ないのですがよろしくお願いします。 attachMoiveでライブラリ内のMCを数十個複製しそれらをステージ内に 配置する際、4x4、6x6といったように均等に数十個配置する事は 出来るのですが均等に配置するのではなく自分の指定した座標に 1つ1つ配置したいのです。 色々調べましたら、自分の配置したい各場所の各座標(x,y)を 配列を使い変数にするのだと思い、自分なりに作ってみましたところ 1つは指定した座標に配置出来たのですが2つ目以降が上手く 配置出来ません。 var i; var num=50; //複製するmcの数 var pos = {x:50, y:100}; //1つ目の指定座標。 //ここで残り49個のmcの座標も指定。 for (i=0; i<num; i++) { _root.attachMovie("mc", "mc"+i, i); var mc_obj = eval("_root.mc"+i); mc_obj._x = pos._x; mc_obj._y = pos._y; } 一応頭の中ではこういうスクリプトを考えてますが多分間違いが あり何かが足りないのだと思います。 var posのところで2つ目以降の座標の指定の仕方と forの中でmc_obj._xとmc_obj._yにどのように50個分指定した 座標へ配置設定をしてやるのかお分かりくださる方がいらっしゃれば ご教授くださいますようよろしくお願いします。
- ベストアンサー
- Flash
- createEmptyMovieClipdeで作成したmcをASで動かす
createEmptyMovieClipで空のムービークリップを作成し、 そのMCに画像を読み込ませた後、右に徐々に移動させたい場合、 どのようなスクリプトを書いたらよいのでしょうか。 for(i=0; i < 10; i++){ createEmptyMovieClip(["load_mc"+i],i); _root["load_mc"+i]._x = i*120; _root["load_mc"+i]._y = 20; _root["load_mc"+i].loadMovie(img); } _root["load_mc"+i]._x += 10; とすると、単純にx座標が10の所にMCが配置されるだけで、 モーショントゥイーンのように動いてくれません。。。。
- ベストアンサー
- Flash
- mcをランダムに並べたい
winXP、flash8です。 6個のmc(h0~h5)をステージにランダムに並べるようスクリプトを考えています。 ランダムの数R[0]~R[5]までが出ています。 下記のようにx座標とy座標を決め配置したいと思ったのですが うまくいきません。 どこが、違うのか教えてください。よろしく、お願いします。 tx0 = 60; tx1 = 136; tx2 = 212; tx3 = 288; tx4 = 364; tx5 = 440; for (i = 0; i < 6; i++) { num = "_root.h" + R[i]; num._y = 76; num._x = "tx" + [i]; }
- ベストアンサー
- Flash
- ムービー上の特定の座標上にマウスオーバーがあった場合だけ特定の処理をしたい
ムービー上の特定の位置にマウスが載った場合、 特定のMCの動きを制限したいのですが、 どの場合、「ムービー上の特定の位置にマウスが載っているかどうか」を判断するにはどのようなスクリプトを書けばいいでしょうか。 <具体例> y座標範囲0~100 で、x座標範囲0~600 の範囲内にあるときだけ、mc_birdに、function fly() を実行させたい。 <_rootのフレームアクション> this.onEnterFrame = function(){ ※ここに条件分岐等を入れればいいと思うのですが、 何を書けばいいのかわかりません。 } 宜しくお願いします。
- ベストアンサー
- Flash
- 複数のMC(ドラッグで移動可能)から等しい距離にMCを配置したい
ドラッグで移動可能な複数のムービークリップから等しい距離の位置にムービークリップを配置したいです。 以下『複数』が3つの場合を例にします。 MC4はMC1、MC2、MC3がドラッグで移動されると、MC1、MC2、MC3への距離が等しい位置(厳密に等しくなくても良い)に移動させたいです。(結果、MC4はMC1、MC2、MC3を三角形とした際の重心点上に配置される) オーサリングツールは『ParaFla!』ActionSctiptは1.0相応で以下の様に作ってみましたが、いつまで経っても落ち着かないので改善したいです。 ※スクリプトのスペースは全角で記述。 ■MC1、MC2、MC3 _root上にMC1を深度0、[固定]で配置。 _root上にMC2を深度1、[固定]で配置。 _root上にMC3を深度2、[固定]で配置。 MC1,MC2,MC3にテキストで●を配置。 MC1,MC2,MC3に以下スクリプトを記述。 on (press){ this.startDrag(); // ドラッグを開始する } - on (release, releaseOutside){ this.stopDrag (); // ドラッグを解除する } ■MC4 _root上にMC4を深度3に配置。 MC4にテキストで○を配置し、以下スクリプトを記述。 onClipEvent (enterFrame){ long=0; short=0; for(i=1;i<=3;i++){ mc=eval('_root.MC'+i); length=Math.sqrt((mc._x-_x)*(mc._x-_x)+(mc._y-_y)*(mc._y-_y)); if(long<=length){ long=length; long_mc=mc; } if(short>=length||short==0){ short=length; short_mc=mc; } } _x += ((long_mc._x+short_mc._x)/2 - _x)/5; _y += ((long_mc._y+short_mc._y)/2 - _y)/5; } 上記のようにして作成したものを以下に置きます。 http://carken.web.fc2.com/osiete/test3.html 動かしてみると、いつまでたっても、細かく動いて止まってくれません。 厳密に同じ距離でなくても良く、ある程度見た目にOKかなってところで止まるようにしたいです。 アドバイスありましたら、よろしくお願いいたします。 参考 『2つのMC(ドラッグで移動可能)から等しい距離にMCを配置したい』(http://oshiete1.goo.ne.jp/qa4328262.html)
- ベストアンサー
- Flash
お礼
こんなに詳しく、教えていただきとても助かりました。 我ながら身の程知らずな事をやろうとしていました。 マウスに近づくような動きは・・・あきらめます^^; 教えていただいたやり方で、なんとかなりそうです。 本当にありがとうございました!