【问题标题】:Problems with functions in Action Script 3.0Action Script 3.0 中的函数问题
【发布时间】:2012-06-13 08:34:28
【问题描述】:

单击按钮时,我有三个要释放的功能。它们几乎一样,一个接一个地写下来。我的问题是第一个功能(粘贴在下面)有效,但是当我单击第二个和第三个按钮时没有任何反应。第二个和第三个按钮的代码相同,但使用的变量不同。

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};
    }
}

【问题讨论】:

    标签: actionscript-3 events event-handling listener


    【解决方案1】:

    避免使用嵌套函数。您提到的变量值似乎保留在闭包中。试试这个方法:

    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};
    }
    

    【讨论】:

    • 非常感谢,添加到舞台时出现问题,一些项目没有正确转换为movieClip,这就是我的问题的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多