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



我正在尝试创建一个跟踪用户生成的值的flash应用程序。该应用程序基本上应该允许用户输入物品的名称及其成本。然后应该将总成本相加,以向用户显示总价值。我可能会想办法把这些值加在一起,但我真的不知道如何允许用户创建一个列表,然后允许用户保存它。有人能给我指一个教程或给我指正确的方向吗?

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

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

在(发布){total=数量(租金)+数量(食物)+数量;}

我遗漏了什么吗?

我可以给输入文本实例名称,然后给它们变量吗?有什么方法可以做到这一点?

谢谢你的帮助!

有一个object array,例如

var stack:Array = new Array();

然后当用户输入时,将项目名称及其成本推送到该数组中,如

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

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

您必须了解这在代码中是如何工作的。actionscript中的列表可以存储在数组、向量、字典甚至Object中。

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

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

这就是在操作脚本3.0:中为我修复问题的原因

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

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

最新更新