我正在开发一款绘画游戏,一旦你点击画笔,鼠标就会切换到所述画笔的图形对应部分,让你在屏幕上绘画。如果没有选择画笔,鼠标将保持不变。
矩形和画笔位于单独的影片剪辑上,这使我可以在其上叠加 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);
老实说,我不知道是什么导致了这个错误。我认为更改鼠标光标会很简单。
我怎样才能解决这个问题?