メイン 迷える子羊の部屋【初心者専用】
removeChildしたmcにhitTestObjectが反応する | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| koppe | Åê¹ÆNo.43089 投稿日時: 2009-8-7 4:57 |
半人前 ![]() ![]() 居住地: 投稿: 57
使用環境:
WinXPsp3,Flashcs4 |
removeChildしたmcにhitTestObjectが反応する お世話になっています。
ふたつのmc a_mc,b_mcがあり、 b_mcをマウスで押すとマウス座標に追従させてます。 そしてa_mcと重なったときにマウスを押すと、a_mcをremoveChildする処理を作成しています。 実行したらa_mcが消えた後に再びb_mcを移動させ、 a_mcの消えた場所でマウスを押すと、エラーがでてしまいます。 ArgumentError: Error #2025: 指定した DisplayObject は呼び出し元の子でなければなりません。 これはa_mcに反応しているけどa_mcをremoveChildできないといってるのでしょうか? どうすれば怒られないのでしょうか? よろしくお願いします。 |
| 野中文雄 | Åê¹ÆNo.43090 投稿日時: 2009-8-7 6:07 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: removeChildしたmcにhitTestObjectが反応する まず、ご質問に回答が得られたら、フィードバックをしましょう。→【フィードバックをしない】
つぎに本題です。すでに「勘当」して子どもでも何でもないものは「removeChildできないといってる」のです。 引用: koppeさんは書きました: |
| koppe | Åê¹ÆNo.43091 投稿日時: 2009-8-7 8:22 |
半人前 ![]() ![]() 居住地: 投稿: 57
使用環境:
WinXPsp3,Flashcs4 |
Re: removeChildしたmcにhitTestObjectが反応する removeChild(a_mc);
で一度「勘当」しているので「removeChildできないといってる」のは理解できるのですが、私の疑問はそもそもなぜremoveChildしたはずのa_mcにhitTestObjectがtrueなのか?ということなのです。 以下が出力ですが 当たった 当たった ArgumentError: Error #2025: 指定した DisplayObject は呼び出し元の子でなければなりません。 一回目の「当たった」でa_mcをremoveChildしました。 しかしそのa_mcに二回目もなぜか当たり、エラーが出ます。 二回目は当たらずに、エラーも出ない、そんな状態が目標です。 ひょっとしてremoveChildした物にhitTestObjectがtrueなのは当たり前なのでしょうか? もしそうならa_mcが存在しなくする方法があるのでしょうか? よろしくおねがいします。 |
| ひろゆき | Åê¹ÆNo.43093 投稿日時: 2009-8-7 9:34 |
ちょんまげら ![]() ![]() 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CCSafari 6.1 |
Re: removeChildしたmcにhitTestObjectが反応する 引用:
koppeさんは書きました: 確かめてみればよいのでは?
|
| koppe | Åê¹ÆNo.43096 投稿日時: 2009-8-7 16:27 |
半人前 ![]() ![]() 居住地: 投稿: 57
使用環境:
WinXPsp3,Flashcs4 |
Re: removeChildしたmcにhitTestObjectが反応する お返事ありがとうございます。
if (b_mc.hitTestObject(a_mc)) { trace("当たった"); removeChild(a_mc); } のところを if (a_mc) { if (b_mc.hitTestObject(a_mc)) { trace("当たった"); removeChild(a_mc); a_mc=null; } } に変更すればエラーが出ませんでした。 条件式の意味ですが、 もしa_mcが空でなければ{ そしてもしb_mcとa_mcが当たっていれば{ 「当たった」表示; 表示リストからはずす; a_mcを空にする; } } といった解釈でよろしいでしょうか? if (a_mc) といった条件を使ったことが無いのでご確認お願いします。 |
| ひろゆき | Åê¹ÆNo.43098 投稿日時: 2009-8-7 17:08 |
ちょんまげら ![]() ![]() 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CCSafari 6.1 |
Re: removeChildしたmcにhitTestObjectが反応する 引用:
koppeさんは書きました: ヘルプを活用しましょう。 「null」 「F-site | if (condition=1)」なども参考になるでしょうか。
|
| koppe | Åê¹ÆNo.43102 投稿日時: 2009-8-8 6:39 |
半人前 ![]() ![]() 居住地: 投稿: 57
使用環境:
WinXPsp3,Flashcs4 |
Re: removeChildしたmcにhitTestObjectが反応する なるほどnullを入れたら条件がfalseになるのを利用するのですね...
ありがとうございました。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |



ログイン




CS5.5
.6.8
Vista Home Premium (SP1)



