从UI中的文本框传递参数参数(Flash,AS3)

时间:2016-01-18 00:03:19

标签: actionscript-3 flash parameter-passing

我目前正在学习Flash CS6中的AS3编程(我之前没有编程经验),现在我正在尝试将参数从UI中的文本框传递给参数。

以下是我的想法:

btnKnapp.addEventListener(MouseEvent.CLICK, skrivUt(int(txtInput.text)));
function skrivUt(x:int)
{
    for(var i:int=1; i<=5; i++)
    {   
        var output:String = "";
        for(var j:int=0; j<x; j++)
        {
            output += String(i);
        }
        trace(output);
        txtOutput.appendText(output + "\n");
        output = "";
    }
}

所以我想执行skrivUt函数,当我按下txtInput按钮时,使用x文本框中写的整数作为btnKnapp参数。

2 个答案:

答案 0 :(得分:0)

这是我用来将参数传递给EventListener的方法。

btnKnapp.addEventListener(MouseEvent.CLICK, nextfuncWithParams(skrivUt, int(txtInput.text)));

function nextfuncWithParams(nextfunc: Function, params: int): Function{
  return function(): void{
    nextfunc(params);
  }
}

function skrivUt(x:int): void
{
    // Your logic
}

如果要传递多个参数,请使用下面的对象类型。

var obj: Object = new Object();
obj.param1 = "Some String param";
obj.param2 = 123;
obj.param3 = false;
btnKnapp.addEventListener(MouseEvent.CLICK, nextfuncWithParams(skrivUt, obj));

function nextfuncWithParams(nextfunc: Function, params: Object): Function{
  return function(): void{
    nextfunc(params);
  }
}

function skrivUt(params: Object): void
{
    trace(params.param1);
    trace(params.param2);
    trace(params.param3);
}

答案 1 :(得分:0)

以下代码肯定会有效

btnKnapp.addEventListener(MouseEvent.CLICK, skrivUt);
function skrivUt(e:MouseEvent)
{
    var x:int = int(txtInput.text);
    for(var i:int=1; i<=5; i++)
    {   
        var output:String = "";
        for(var j:int=0; j<x; j++)
        {
            output += String(i);
        }
        trace(output);
        txtOutput.appendText(output + "\n");
        output = "";
    }
}