简体   繁体   English

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

[英]Pass argument to parameter from text box in UI (Flash, AS3)

I'm currently learing to program in AS3 in Flash CS6 (I have no previous programming experience), and now I'm trying to pass an argument to a parameter from a text box in the UI. 我目前正在学习使用Flash CS6在AS3中编程(我以前没有编程经验),现在我正尝试将UI参数中的参数传递给参数。

Here's what I've come up with: 这是我想出的:

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

So I want to execute the skrivUt function, and use the integer written in the txtInput text box as the x parameter,when I press the button btnKnapp . 因此,当我按下btnKnapp按钮时,我想执行skrivUt函数,并将在txtInput文本框中写入的整数用作x参数。

This is a way that I'm using to pass parameters to EventListener. 这是我用来将参数传递给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
}

If you want to pass multiple params, use Object type like below. 如果要传递多个参数,请使用如下的对象类型。

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

the following code will definitely work 以下代码肯定会起作用

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM