No.1ベストアンサー
- 回答日時:
AとBの位置関係が変わらないまま、AをドラッグするとBも動く・・・というのでしたら、次のような考え方をしてみてはいかがでしょう。
まず、ムービークリップAとBのインスタンスを作り、ご希望の位置関係になるように配置します。この2つを選択した状態で更にシンボルに変換して、ムービークリップCを作ります。つまり、ムービークリップCは、内部にAとBのインスタンスを持つムービークリップというわけです。
次に、「Cの中のAの上でマウスボタンが押されたら、C全体をドラッグ可能にする」というアクションを設定します。すると、AをドラッグするとBも一緒に動くので、一見、AとBが連動して動いているように見えます。ですが、実際はCという1つのムービークリップが動いているだけですから、動くタイミングはズレません。
Aがボタンではなくムービークリップの場合、「Aがドラッグされたかどうか」は、hitTestを利用して、「マウスのボタンが押された時、マウスカーソルがAと重なっていたかどうか」を見ることで判定できます。
仮に、ムービークリップCのインスタンス名を ins_C 、Cの中のAのインスタンス名を ins_A とすると、ins_Cに設定するスクリプトはこんな感じでしょうか。
onClipEvent(mouseDown)
{
//Aの上にマウスカーソルがある場合、ドラッグ開始
if (this.ins_A.hitTest (_root._xmouse , _root._ymouse , true))
{
this.startDrag();
}
}
onClipEvent(mouseUp)
{
this.stopDrag();
}
なお、ステージ上のCのインスタンスにではなく、ムービークリップCの編集画面で、Cの中にあるAのインスタンスに
onClipEvent(mouseDown)
{
if (this.hitTest (_root._xmouse , _root._ymouse , true))
{
_parent.startDrag();
}
}
onClipEvent(mouseUp)
{
_parent.stopDrag();
}
・・・のようにスクリプトを設定しても、同じ動作になります。ムービークリップCのインスタンスが複数必要で、どれも似たような動きをさせたい場合は、こちらの方が便利です。
ありがとうございます。
コピペしてみましたが、
if (this.***.hitTest (_root._xmouse , _root._ymouse , true))
及び
if (this.hitTest (_root._xmouse , _root._ymouse , true))
の部分で、シンタックスエラーが出てしまいました。
No.2
- 回答日時:
再び、DPEです。
#1のスクリプトは、ブラウザで見やすくするためにインデントを全角のスペースで付けていますが、実際のスクリプトでは、構文の中に全角のスペースが混ざっているとシンタックスエラーになります。コピーして使う時は、各行に入っている全角のスペースを、全て半角のスペースかタブに置き換えて下さい。
ところで、回答してしまってからふっと思ったのですが・・・
AとBの位置関係が固定なら、Bのムービークリップの位置は、Aがドラッグ中かどうかに関係なく、常にAと一定の距離に保っておけばいいのではないでしょうか?
つまり、#1のような七面倒なことをしなくても、Bに
onClipEvent(enterFrame)
{
this._x = _root.a._x + dist_x;
this._y = _root.a._y + dist_y;
}
(Aのムービークリップのインスタンス名を a 、AとのX軸方向の差分を dist_x 、Y軸方向の差分を dist_y とします)
・・・というアクションを設定すると、Aがドラッグ中であろうがなかろうが、Bは常にAの座標に差分を足した位置に表示されます。Aがドラッグされていなければ、Bも止まったままになります。
イベントを mouseMove にして同様のスクリプトをざっと試してみたところ、それほどBが遅れて動くようには見えませんでした。
もしかしたら、inuichiさんの目指しているものと私の考えているものが、違っているのかも知れません。だとしたら、的外れな回答で大変申し訳ないのですが。。。
大変失礼しました。
前回いただいたご回答で、キレイに動きました。
AとBがくっついているので、mouseMoveだと微妙なずれがすごく気になっていたのですが、これで問題が解決しました。感謝してます。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) awkのtoupper() 1 2022/10/21 20:39
- 中学校 中1数学 比例のグラフの座標の読み取り 4 2023/03/28 12:26
- その他(プログラミング・Web制作) 外付ディスプレイで AutoHotkey の MouseMove コマンドを実行するとマウスカーソル 1 2023/03/06 00:04
- Illustrator(イラストレーター) プロパティパネルを元に戻したい 3 2022/05/02 23:26
- Visual Basic(VBA) Excel ファイルを指定し、指定されたファイル内にシートを統合するVBA 8 2023/07/10 10:09
- 物理学 座標変換に関して質問です。参考書に 「力は一般に時間と場所によって異なるから力f(ベクトル)はx,y 3 2022/07/03 20:24
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- 数学 2次関数y=ax^2のグラフは点A(4,2)を通っている。y軸上に点BをAB=OB(Oは原点)となる 1 2022/04/08 00:05
- 数学 線形代数の2次元直交座標系、極座標系についての問題がわからないです。 2 2022/07/16 20:42
- 数学 【 数I 放物線と直線の共有点 】 問題 放物線y=x²+ax+bが点(1,1)を通り, 直線y=2 4 2022/07/18 09:57
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ムービークリップシンボルとグ...
-
Wordの文字削除ができない
-
【テプラの使い方で】複数行の...
-
テプラで2行目の文字を大きく...
-
エクセルのグラフ データテー...
-
WinMergeの色設定
-
Excel 行列番号のハイライト色...
-
ワード ヘッダ下部とフッタ上...
-
EXCELのコンボボックス 配置の...
-
PhotoShopで任意の色数に減色し...
-
ホームページ ビルダー 文字...
-
Excelで表示されない箇所が印刷...
-
Excelのヘッダー表示を変数で指...
-
Becky! で2行目以降に色がつく...
-
Wordで取り消し線のみ色を変える
-
HPビルダーで中央表示がしたい...
-
日塗工の色をRGB値に変更し...
-
ワードのハイパリンクの色を変...
-
Wordで目次へ戻る方法
-
ホームページビルダー 同じペ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ムービークリップシンボルとグ...
-
illustratorにてクリッピングマ...
-
ムービークリップのドラッグ
-
テキストエディタで縦に文字を...
-
イラストレータ10である範囲...
-
FlashMXでマスクを・・
-
illustratorの左右対称パターン
-
Swishで作ったテキストアニメを...
-
フラッシュで動画をコントロー...
-
Wordの文字削除ができない
-
【テプラの使い方で】複数行の...
-
エクセルのグラフ データテー...
-
ワード ヘッダ下部とフッタ上...
-
テプラで2行目の文字を大きく...
-
WinMergeの色設定
-
PhotoShopで任意の色数に減色し...
-
EXCELのコンボボックス 配置の...
-
Excelのヘッダー表示を変数で指...
-
ホームページビルダー22でリン...
-
macとwinで色の見え方が違う、...
おすすめ情報