单击按钮时,我有三个功能可以释放。它们几乎相同,一个接一个地写下来。我的问题是第一个功能(粘贴在下面)有效,但是当我点击第二个和第三个按钮时没有任何反应。第二个和第三个按钮的代码相同,但使用了不同的变量。
redStarts.addEventListener(MouseEvent.CLICK, redBars);
function redBars(event:Event)
{
red1Starts.addEventListener(Event.ENTER_FRAME, r1);
red2Starts.addEventListener(Event.ENTER_FRAME, r2);
red3Starts.addEventListener(Event.ENTER_FRAME, r3);
function r1(event:Event)
{
if (red1Starts.y > 200){red1Starts.y -= 4};
}
function r2(event:Event)
{
if (red2Starts.y > 20){red2Starts.y -= 4};
}
function r3(event:Event)
{
if (red3Starts.y > 120){red3Starts.y -= 4};
}
}
答案 0 :(得分:6)
避免使用嵌套函数。似乎您提到的变量值在闭包中持久存在。试试这种方式:
redStarts.addEventListener(MouseEvent.CLICK, redBars);
function redBars(event:Event)
{
red1Starts.addEventListener(Event.ENTER_FRAME, r1);
red2Starts.addEventListener(Event.ENTER_FRAME, r2);
red3Starts.addEventListener(Event.ENTER_FRAME, r3);
}
function r1(event:Event)
{
if (red1Starts.y > 200){red1Starts.y -= 4};
}
function r2(event:Event)
{
if (red2Starts.y > 20){red2Starts.y -= 4};
}
function r3(event:Event)
{
if (red3Starts.y > 120){red3Starts.y -= 4};
}