在flash中创建用户生成的列表

时间:2012-11-26 04:03:56

标签: actionscript-3 flash

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

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

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

on(release){ 总数=数量(租金)+数量(食物)+数量(旅行)+数量(娱乐)+数量(票据); }

我错过了什么吗?

我可以提供输入文本实例名称然后给它们变量吗?如何解决这个问题?

感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

拥有object array,例如

var stack:Array = new Array();

然后按下项目名称,并在用户输入时为该数组付出代价,例如

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

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

答案 1 :(得分:0)

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

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

如果你想从列表中获取“item 1”的'product',你必须为它创建一个函数,让我们称之为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

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

答案 2 :(得分:0)

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

myButton.addEventListener(MouseEvent.CLICK, addThem);

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

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