![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
ドラッグで移動可能な二つのムービークリップMCAとMCBから等しい距離の位置に三つ目のムービークリップMCCを配置したいです。
MCCはMCA、MCBがドラッグで移動されると、MCAとMCBへの距離が等しい位置(厳密に等しくなくても良い)に移動させたいです。(結果、3つのムービークリップは一直線上に並ぶ)
オーサリングツールは『ParaFla!』ActionSctiptは1.0相応で以下の様に作ってみましたが、いつまで経っても落ち着かないので改善したいです。
※スクリプトのスペースは全角で記述。
※ベクトルの計算に『HAKUHIN's home page』で公開されているライブラリを使用しました。
http://hakuhin.hp.infoseek.co.jp/main/as/vector. …
■ライブラリの取り込み
_root上に配置したスクリプトに
#FILE "vec2d.as"
と記述。
■MCA、MCB
_root上にMCAを深度0、[固定]で配置。
_root上にMCBを深度1、[固定]で配置。
MCAとMCBにテキストで●を配置。
MCAとMCBに以下スクリプトを記述。
on (press){
this.startDrag();// ドラッグを開始する
}
-
on (release, releaseOutside){
this.stopDrag ();// ドラッグを解除する
}
■MCC
_root上にMCCを深度2に配置。
MCCにテキストで●を配置し、以下スクリプトを記述。
onClipEvent (enterFrame){
c_to_a = _root.Vec2dCreate(_root.MCA._x-_x,_root.MCA._y-_y);
c_to_b = _root.Vec2dCreate(_root.MCB._x-_x,_root.MCB._y-_y);
length_c_to_a=_root.Vec2dLength(c_to_a);
length_c_to_b=_root.Vec2dLength(c_to_b);
if(length_c_to_a > length_c_to_b){
long=c_to_a;
}else{
long=c_to_b;
}
pos_c = _root.Vec2dCreate(_x,_y);
long=_root.Vec2dNormalize(long);
long=_root.Vec2dScale(long, 5);
pos=_root.Vec2dAdd(pos_c,long);
_x=pos.x;
_y=pos.y;
}
上記のようにして作成したものを以下に置きます。
http://carken.web.fc2.com/osiete/test.html
動かしてみると、いつまでたっても、細かく動いて止まってくれません。
厳密に同じ距離でなくても良く、ある程度見た目にOKかなってところで止まるようにしたいです。
アドバイスありましたら、よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
何のためにそれ(ベクトルのas)を使ってそんなに複雑な方法をするのかや,
どんな感じにしたいのかがよくわかりませんが,
もっと単純に,普通によくあるように,
一般的な算数で考えて,
次のようにすれば良いのではないでしょうか?
(ベクトルのasは使いません。)
===例1=========
MCA と MCB のスクリプトはそのままで,
MCC 自体に書くスクリプトを次のようにします。
----------------------------------------------------
onClipEvent (enterFrame){
this._x += ((_root.MCA._x+_root.MCB._x)/2 - this._x)/5;
this._y += ((_root.MCA._y+_root.MCB._y)/2 - this._y)/5;
}
----------------------------------------------------
===例2=========
MCA と MCB のスクリプトはそのままで,
MCC 自体に書くスクリプトを次のようにします。
----------------------------------------------------
onClipEvent (load){
this._x = (_root.MCA._x+_root.MCB._x)/2;
this._y = (_root.MCA._y+_root.MCB._y)/2;
}
-
onClipEvent (mouseMove){
this._x = (_root.MCA._x+_root.MCB._x)/2;
this._y = (_root.MCA._y+_root.MCB._y)/2;
updateAfterEvent();
}
----------------------------------------------------
例1 がゆっくり中心に近づくパターンで,
例2 がマウスの動きに即反応するパターンです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 Systematic reviews have evaluated the efficacy of 2 2022/05/18 16:39
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- UNIX・Linux Kali Linuxで起動できない - Minimal BASH Like Line Editing 1 2022/06/03 13:14
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- 英語 文法あっていますか? be likely to ○○ 16 2022/09/11 11:06
- Android(アンドロイド) Androidスマホの時刻の自動同期の頻度を短くしたい 4 2022/12/02 17:29
- UNIX・Linux マスターブートレコード方式のbiosを使ったシステムでインストールされたlinuxで/dev/sda 1 2023/05/13 21:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C++インタプリタを探してます
-
ADに参加していないPCからADサ...
-
python ボタンを押すと複数の関...
-
now loding.......
-
AS3 MC内ボタンクリックでシー...
-
五芒星は、悪魔崇拝とどういう...
-
シンボル化解除の方法
-
漢字入力した値のカタカナ変換...
-
photoshopで書いた四角の枠の中...
-
変数に256文字以上のテキストを...
-
【ExcelVBA】ファイル名をセル...
-
アクションスクリプト2.0 奇数...
-
OpenGLで背景をグラデーション...
-
別のアプリケーションのテキス...
-
RPG(AS400)の本、サイトってあ...
-
ダブルクリックと2回クリックの...
-
VBAで改行の入ったデータの正規...
-
Motifのイベントの制御について...
-
テキストボックスの中身をリセ...
-
DataTableの件数を取得したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python ボタンを押すと複数の関...
-
else if文の順序を変えることに...
-
四乗根を英語で言うと・・・
-
pythonの画像の貼り付けについて
-
PYTHONのtkinterについて
-
PythonでSetWindowPosを使うに...
-
node* ってなんなのでしょうか?
-
SNMPの標準MIBについて
-
ADに参加していないPCからADサ...
-
Pythonのtkinterについて
-
C++インタプリタを探してます
-
Flash Liteのムービークリップ...
-
HTMLからFLASHに変数を送り、内...
-
now loding.......
-
変数名に変数を使う
-
当たり判定で一度だけ音をなら...
-
FLASHで「かるた」を作りたいの...
-
3.0の絶対パス
-
脱出ゲームを作るときのアクシ...
-
2つのMC(ドラッグで移動可能...
おすすめ情報