私はペイント ゲームに取り組んでいます。ブラシをクリックすると、マウスがそのブラシのグラフィカルな対応物に切り替わり、画面上でペイントできるようになります。ブラシが選択されていない場合、マウスは同じままです。
Rectangle とブラシは別の Movieclip にあり、その上に png の線を重ねることができるので、塗りつぶして描画することができます。
シーン 1 のアクション レイヤーで、これはマウスを変更するための私のコードです。
var cursor_mc:MovieClip;
if (CanvPark_mc.HugeSelected1 == true){
cursor_mc = cursor1_mc;
}else if(CanvPark_mc.MediumSelected1 == true) {
cursor_mc = cursor2_mc;
}else if(CanvPark_mc.SmallSelected1 == true) {
cursor_mc = cursor3_mc;
}
stage.addEventListener(MouseEvent.MOUSE_MOVE,moveCursor);
function moveCursor(myEvent:MouseEvent) {
if(CanvPark_mc.SmallSelected1 == false, CanvPark_mc.MediumSelected1 == false, CanvPark_mc.HugeSelected1 == false)
{ Mouse.cursor="auto";
}else{
setChildIndex(cursor_mc, this.numChildren-1);
cursor_mc.x = (mouseX);
cursor_mc.y = (mouseY);
Mouse.hide();
}
}
各ブラシには、それに関連付けられたブール変数 (Small、Medium、HugeSelected1) があるため、どのブラシが選択されていて、どのブラシが選択されていないかを常にコードで知ることができます。
現在、このコードを実行すると、最初は何も起こりませんが、ブラシのいずれかをクリックすると、これが出力に表示されます。
TypeError: Error #2007: Parameter child must be non-null.
at flash.display::DisplayObjectContainer/setChildIndex()
at visibilityToggle/moveCursor()[visibilityToggle::frame1:42]
具体的に指しているようです
setChildIndex(cursor_mc, this.numChildren-1);
正直なところ、このエラーの原因はわかりません。マウスカーソルを変更するのは簡単だと思いました。
どうすればこれを修正できますか?