ドラッグで移動可能な二つのムービークリップ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ランキング
-
ボタンの上にマウスを置くと虫...
-
SNMPの標準MIBについて
-
100点でクリアする簡単なモグラ...
-
経過時間を計るには
-
python ボタンを押すと複数の関...
-
Pythonのtkinterについて
-
PYTHONのtkinterについて
-
四乗根を英語で言うと・・・
-
2つのMC(ドラッグで移動可能...
-
else if文の順序を変えることに...
-
プログラミング、アーキテクチ...
-
YOASOBI
-
【VB.NET】別Formのボタンが押...
-
フォームのテキストの入力数字...
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
FLASHでの色変更
-
VB.NETで数十行のプログラムを...
-
【Photoshop】レイヤー効果の境...
-
IP Address 入力フォームについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python ボタンを押すと複数の関...
-
else if文の順序を変えることに...
-
PYTHONのtkinterについて
-
Pythonのtkinterについて
-
四乗根を英語で言うと・・・
-
pythonの画像の貼り付けについて
-
SNMPの標準MIBについて
-
PythonでSetWindowPosを使うに...
-
pythonのグローバル変数
-
ボタンの上にマウスを置くと虫...
-
関数をプロパティとして代入する際
-
ADに参加していないPCからADサ...
-
レイヤーに配置されたムービー...
-
[FlashMX2004]動的にファイルを...
-
メニュースクロール
-
パーセントで配置したフラッシ...
-
Flashの表示サイズを動的に変更...
-
スライドショーのフェードイン...
-
swfがきちんと動作しない!
-
フルウィンドウのFlash Firefox...
おすすめ情報