我提出了一个新问题,因为它有意义,因为问题不再相同了。
我正在制作一个着色游戏。 CanvPark_mc是Movieclip,其中包含创建画布的详细信息以及所有画笔细节所在的位置。 Huge,Medium和SmallSelected1变量是单击画笔时更改的变量,因此您可以识别它们。
我想根据上次点击的画笔切换光标。这可以通过第一个if参数来完成。 现在,这是我的代码切换,感谢previous question
中@NBooo的帮助var cursor_mc: MovieClip = new MovieClip();
if (CanvPark_mc.HugeSelected1 == true) {
cursor_mc = cursor1_mc; //Big Cursor
removeChild(cursor_mc);
}
if (CanvPark_mc.MediumSelected1 == true) {
cursor_mc = cursor2_mc; //Medium Cursor
removeChild(cursor_mc);
}
if (CanvPark_mc.SmallSelected1 == true) {
cursor_mc = cursor3_mc; //Small Cursor
removeChild(cursor_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 if (cursor_mc){
addChild(cursor_mc);
setChildIndex(cursor_mc, this.numChildren - 1);
cursor_mc.x = stage.mouseX;
cursor_mc.y = stage.mouseY;
cursor_mc.mouseChildren = cursor_mc.mouseEnabled = false;
Mouse.hide();
}
}
遗憾的是,这段代码的问题在于,每当我点击所述按钮时,光标就会消失。它不会改变我之前制作的任何MovieClip。
请注意if块中的removeChild是希望在过去点击后删除屏幕上的cursor_mc的先前实例。
在测试中,它只会更改,在第一个if块中,其中一个参数的值为=而不是==。
示例:
if (CanvPark_mc.HugeSelected1 == true) {
cursor_mc = cursor1_mc; // Big Cursor
removeChild(cursor_mc);
}
if (CanvPark_mc.MediumSelected1 == true) {
cursor_mc = cursor2_mc; //Medium Cursor
removeChild(cursor_mc);
}
if (CanvPark_mc.SmallSelected1 = true) {
cursor_mc = cursor3_mc; //This is the one he'll run, showing the smallest cursor
removeChild(cursor_mc);
}
此外,如果它们全部减少到只有=,代码将选择列表中的最后一个。 我认为我的代码存在问题,经过数小时的尝试后我无法分辨它是什么。
你们有没有人帮我解决这个问题?
答案 0 :(得分:0)
我找到了自己问题的答案,所以我会发布代码来帮助其他人。
var cursor_mc: MovieClip = new MovieClip();
stage.addEventListener(MouseEvent.MOUSE_MOVE, moveCursor);
function moveCursor(myEvent: MouseEvent) {
if (CanvPark_mc.HugeSelected1 == true) {
cursor_mc = cursor1_mc;
cursor1_mc.visible = true;
cursor2_mc.visible = false;
cursor3_mc.visible = false;
}
if (CanvPark_mc.MediumSelected1 == true) {
cursor_mc = cursor2_mc;
cursor1_mc.visible = false;
cursor2_mc.visible = true;
cursor3_mc.visible = false;
}
if (CanvPark_mc.SmallSelected1 == true) {
cursor_mc = cursor3_mc;
cursor1_mc.visible = false;
cursor2_mc.visible = false;
cursor3_mc.visible = true;
}
if (CanvPark_mc.SmallSelected1 == false && CanvPark_mc.MediumSelected1 == false && CanvPark_mc.HugeSelected1 == false) {
Mouse.cursor = "auto";
} else if (cursor_mc) {
addChild(cursor_mc);
setChildIndex(cursor_mc, this.numChildren - 1);
cursor_mc.x = stage.mouseX;
cursor_mc.y = stage.mouseY;
cursor_mc.mouseChildren = cursor_mc.mouseEnabled = false;
Mouse.hide();
}
}
if块不在函数内部,因此它没有关联代码togheter。我把它放在里面作为测试,它工作。因为当您单击将鼠标更改为画笔时,Movieclip会开始跟随鼠标。如果您更改为另一个画笔,则动画片段将保留在那里。通过在if中切换它的可见性来解决这个问题。 :)
它现在按预期工作。
希望这有助于某人!