子を作成してムービークリップに追加しましたが、他の関数でそのプロパティにアクセスすると、Animateはエラー#1009をスローします:nullのプロパティまたはメソッドにアクセスできませんオブジェクト参照。AS3子がステージに追加された後でnullです。
子どもは、難なく追加され削除されたリスナーを持っていて、removeChildで表示リストから削除することはできますが、それに関連付けられた他のプロパティ(x、yなど)はありません。子が表示リストに追加されたのと同じですが、他の関連プロパティはありませんか?
子がMovieClipとしてキャストされていて、そのプロパティにアクセスする前に子がステージ上で表示オブジェクトとして利用できるようにリスナー(ADDED_TO_STAGE)を追加しようとしました。しかし、運がない。
私のゲームでは、正常に動作するように見える同じコードの他の状況があります。私は専門家ではないんだけど、私はまた、ActionScriptのに新しいものではありませんよ、とこれは私を当惑さ...
子を作成するコード:
function createNPCtargets():void
{
for (var i:int=0 ; i<= npcs -1 ; i++)
{
var NPCtarget:MovieClip = new target_mc;
overlay_mc.addChild(NPCtarget);
NPCtarget.name = "target_" + i;
NPCtarget.addEventListener(MouseEvent.CLICK, fireShot);
}
}
エラーがスローコード(npcObjectで結構です):あなたは、この更新機能をたくさん呼んでいる場合は、あなたの問題が何であるか
function moveNPC():void
{
for (var i:int=0 ; i<= npcs -1; i++)
{
overlay_mc.getChildByName("target_" + i).x = npcObject.x;
overlay_mc.getChildByName("target_" + i).y = npcObject.y;
}
}
このループ内に 'trace(overlay_mc.getChildByName(" target_ "+ i));"を追加するとどうなりますか?オブジェクトはまったく見つかりますか? – 3vilguy
良いアイデア3vilguy、私は実際に投稿する前にこれを試しました。奇妙なことに、それは問題なしでオブジェクト自体をトレースしますが、2番目に.x(または他のプロパティ)を行末に追加すると、実行時エラーがスローされます...そのため、問題のないオブジェクトが見つかるようですそのプロパティのどれにもアクセスすることはできません。 – user3600741
それがうまくいくならば、それをDisplayObjectとしてキャストし、nullでないかどうかを確認するのはどうですか?そして、あなたは確かに 'npcObject'はnullではありませんか? – 3vilguy