0

我正在尝试创建一个跟踪用户生成值的 Flash 应用程序。该应用程序基本上应该允许用户输入项目的名称和成本。然后应将总成本相加以向用户显示总价值。我可能会弄清楚如何将这些值相加,但我不确定如何允许用户创建一个列表然后允许用户保存它。任何人都可以将我指向教程或指向正确的方向吗?

我正在使用变量来添加用户输入的数字以得出总数。第一个问题是 actionscript 3.0 不允许文本变量。我只是将它转换为 2.0 来解决这个问题。第二个问题是,当我测试应用程序并输入我的值并单击提交时,我在总值字段中得到 NaN。是否有理由不添加值?

这是我用于提交按钮的代码:

on (release) { total = Number(rent) + Number(food) + Number(travel) + Number(entertainment) + Number(bills);}

我错过了什么吗?

我可以给输入文本实例名称,然后给它们变量吗?有什么方法可以解决这个问题?

谢谢您的帮助!

4

3 回答 3

0

有一个object array,比如说

var stack:Array = new Array();

然后在用户输入时将项目名称和它的成本推送到该数组,例如

stack.push({item:AAA, cost:xx});

这样您就可以随时使用该数组生成列表。

于 2012-11-26T06:26:34.997 回答
0

你必须看看这在代码中是如何工作的。actionscript 中的列表可以存储在数组、向量、字典甚至对象中。

 Var myList:Array = [];
 myList.push({name: "item 1", cost: 5 });
 myList.push({name: "item 2", cost: 7.5 });

如果您想从列表中获取“项目 1”的“产品”,则必须为此创建一个函数,我们将其命名为 getProductByName

 function getProductByName(name:String):Object
 {
    for each(var product:Object in myList)
    {
       if (product.name === name) return product; 
    }
    return null; // no match found
 }

您可以像这样调用该函数:

 var product = getProductByName("item 1");
 trace(product.cost); // 5

你可以改变产品,所以让它变得更贵

 product.cost += 1;
 trace(product.cost); // 6

玩得开心!如果您正在使用类,您将为产品创建一个具有公共名称和成本的类,在这种情况下,您最好使用向量,以确保使用正确的类型。

于 2012-11-26T06:37:25.393 回答
0

这就是在动作脚本 3.0 中为我解决的问题:

myButton.addEventListener(MouseEvent.CLICK, addThem);

function addThem(e:MouseEvent)
{
    totalField.text = String ( Number(field1.text) + Number(field2.text) + ....);
}

我还必须适当地命名实例。

于 2012-12-05T21:10:02.933 回答