A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
昔(Flash 5)からあるムービークリップクラス(ムービークリップオブジェクト)のメソッドですが,
わかりにくく,使いにくいメソッドですよね。
> どうやればいいでしょうか?
というご質問なので,
以下はほとんどやり方だけの説明です。
ご質問は,
_root
├ aaa_mc
└ b_mc
└ c_mc
となっていて,
c_mc →移動→ a_mc
ですね。
この場合は「a_btn」に,
-----------------------------------------
on (release) {
// 基準となるオブジェクトの作成
var myPoint = new Object();
//
// 基準座標の設定(この場合 _root の基準点)
myPoint.x = 0;
myPoint.y = 0;
//
// aaa_mc の座標をグローバル座標に変換
_root.aaa_mc.localToGlobal(myPoint);
//
// 変換した座標を b_mc (c_mc の親)のローカル座標に変換
_root.b_mc.globalToLocal(myPoint);
//
// その座標に c_mc を持ってくる
_root.b_mc.c_mc._x = myPoint.x;
_root.b_mc.c_mc._y = myPoint.y;
}
-----------------------------------------
こう書けば行けると思います。
と言うか,
「aaa_mc」の座標は元からグローバルな座標なので,
ご質問の localToGlobal は必要なく,
-----------------------------------------
on (release) {
// 基準となるオブジェクトの作成
var myPoint = new Object();
//
// 基準座標の設定
myPoint.x = _root.aaa_mc._x;
myPoint.y = _root.aaa_mc._y;
//
// その座標を b_mc(c_mcの親)のローカル座標に変換
_root.b_mc.globalToLocal(myPoint);
//
// その座標に c_mc を持ってくる
_root.b_mc.c_mc._x = myPoint.x;
_root.b_mc.c_mc._y = myPoint.y;
}
-----------------------------------------
これで良いのです。
_root
├ aaa_mc
│ └ bbb_mc
│ └ccc_mc
└ b_mc
└ c_mc
c_mc →移動→ ccc_mc
この場合は,
-----------------------------------------
on (release) {
// 基準となるオブジェクトの作成
var myPoint = new Object();
//
// 基準座標の設定(この場合 _root の基準点)
myPoint.x = 0;
myPoint.y = 0;
//
// aaa_mc の座標をグローバル座標に変換
_root.aaa_mc.bbb_mc.ccc_mc.localToGlobal(myPoint);
//
// 変換した座標を b_mc (c_mc の親)のローカル座標に変換
_root.b_mc.globalToLocal(myPoint);
//
// その座標に c_mc を持ってくる
_root.b_mc.c_mc._x = myPoint.x;
_root.b_mc.c_mc._y = myPoint.y;
}
-----------------------------------------
または,
-----------------------------------------
on (release) {
// 基準となるオブジェクトの作成
var myPoint = new Object();
//
// bbb_mc親 の座標をグローバル座標に変換
myPoint.x = _root.aaa_mc.bbb_mc.ccc_mc._x;
myPoint.y = _root.aaa_mc.bbb_mc.ccc_mc._y;
_root.aaa_mc.bbb_mc.localToGlobal(myPoint);
//
// 変換した座標を b_mc (c_mc の親) のローカル座標に変換
_root.b_mc.globalToLocal(myPoint);
//
// その座標に c_mc を持ってくる
_root.b_mc.c_mc._x = myPoint.x;
_root.b_mc.c_mc._y = myPoint.y;
}
-----------------------------------------
と書けば行けると思います。
_root
└ aaa_mc
├ bbb_mc
│ └ ccc_mc
└ b_mc
└ c_mc
c_mc →移動→ ccc_mc
この場合は,
--------------------------------
on (release) {
// 基準となるオブジェクトの作成
var myPoint = new Object();
//
// 基準座標の設定
myPoint.x = 0;
myPoint.y = 0;
//
// ccc_mc の座標をグローバル座標に変換
_root.aaa_mc.bbb_mc.ccc_mc.localToGlobal(myPoint);
//
// 変換した座標を b_mc(c_mcの親)のローカル座標に変換
_root.aaa_mc.b_mc.globalToLocal(myPoint);
//
// その座標に c_mc を持ってくる
_root.aaa_mc.b_mc.c_mc._x = myPoint.x;
_root.aaa_mc.b_mc.c_mc._y = myPoint.y;
}
--------------------------------
または,
--------------------------------
on (release) {
// 基準となるオブジェクトの作成
var myPoint = new Object();
//
// ccc_mc の座標をグローバル座標に変換
myPoint.x = _root.aaa_mc.bbb_mc.ccc_mc._x;
myPoint.y = _root.aaa_mc.bbb_mc.ccc_mc._y;
_root.aaa_mc.bbb_mc.localToGlobal(myPoint);
//
// 変換した座標を b_mc (c_mcの親)のローカル座標に変換
_root.aaa_mc.b_mc.globalToLocal(myPoint);
//
// その座標に c_mc を持ってくる
_root.aaa_mc.b_mc.c_mc._x = myPoint.x;
_root.aaa_mc.b_mc.c_mc._y = myPoint.y;
}
-------------------------------
これで行けると思います。
行けますが… やはりイヤなメソッドですね。
イヤですし,上のようにできても,
考えれば考えるほどこんがらがってきて,うまく説明できません。
考えるよりパターンとして使う方が良いのかもしれません。
私は,やっぱり,相対座標(ローカル座標)を足し算引き算する方が好きです。
まあ,何というか,
_root.aaa_mc.bbb_mc ._globalx
とか,
_root.aaa_mc.bbb_mc ._rootx
みたいな座標プロパティがあれば良いと思いますが,これがないのですよ。
Flash 8 のヘルプですが,参考URL。
「localToGlobal (MovieClip.localToGlobal メソッド)」
http://livedocs.macromedia.com/flash/8_jp/main/0 …
「globalToLocal (MovieClip.globalToLocal メソッド)」
http://livedocs.macromedia.com/flash/8_jp/main/0 …
ネットも探しましたが,
ちゃんと説明されているサイトは見つけることができませんでした。
唯一,ココが参考になるかもしれません。
他の方の回答です。
「2つの異なる階層のMCを操作する方法」
http://oshiete1.goo.ne.jp/qa2004666.html
↑教えて!goo ↓OKWave (同じです)
http://okwave.jp/qa2004666.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 物理学 相対性理論のエネルギーについて 3 2023/02/10 15:59
- スピーカー・コンポ・ステレオ MCカートリッジのオススメを教えてください。 お時間割いてくださりありがとうございます。 当方、現在 10 2022/07/04 14:20
- デスクトップパソコン 動画編集で使うデスクトップで今から5年使えるパソコンスペックってどんなのですか?ドスパラで考えていま 5 2023/01/08 12:26
- アイドル・グラビアアイドル 嵐の中でも櫻井翔がMC向き扱いだったけど。 むしろ バラエティやらみていて 爺ちゃん ばあちゃん 国 2 2022/12/03 19:49
- BTOパソコン https://www.youtube.com/watch?v=8h8EVXotOwQ&t=14s 2 2022/12/23 02:25
- 情報・ワイドショー タレントMC 5 2023/06/23 06:44
- バラエティ・お笑い リニューアルされた「新婚さんいらっしゃい!」 3 2022/04/03 18:55
- リフォーム・リノベーション 風呂リモコン増設について 4 2022/06/07 08:47
- Windows 10 アイコンの位置 3 2022/04/24 08:47
- その他(ビジネス・キャリア) 海外から請求書がきたのですがPC/MCの意味がわからないのとそこの数字があってるのかわからなくて海外 2 2022/11/08 11:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダウンロードしたデジブックはa...
-
potplayerについて質問です
-
VBAのコンボボックスの年月表示...
-
uwscでExcelに自動記入
-
この曲はなんでしょう?
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
フラッシュゲームアーカイブ2
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashplayerの運用について
-
Windows10重い
-
iPhoneです。 Adobeフラッシュ...
-
ロック画面に天気を表示したい
-
ヘッダーデザインをするさい形...
-
大学からの課題をやるのに、Ado...
-
更新されて起きた問題
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ボタンのサイズの単位
-
物体の衝突判定について教えて...
-
Flashパブリッシュエラー
-
flash lite の質問です。flash ...
-
duplicateMovieClip
-
photoshopで書いた四角の枠の中...
-
VBScriptでMsgBoxのYesNoボック...
-
webページ上、TABフォーカス出...
-
プログラミング、アーキテクチ...
-
VBAで改行の入ったデータの正規...
-
python ボタンを押すと複数の関...
-
YOASOBI
-
RPG(AS400)の本、サイトってあ...
-
別のアプリケーションのテキス...
-
テキストボックスの中身をリセ...
-
ホームぺージ制作で間違って重...
-
五芒星は、悪魔崇拝とどういう...
-
else if文の順序を変えることに...
-
【VB.NET】別Formのボタンが押...
-
テキストボックスにセルの値を...
おすすめ情報