AS3 使用列表组件和 MouseEvent 监听器

Posted

技术标签:

【中文标题】AS3 使用列表组件和 MouseEvent 监听器【英文标题】:AS3 Using a list component and a MouseEvent listener 【发布时间】:2016-08-18 04:28:21 【问题描述】:
var gulost:Object = new Object;
btn.addEventListener(MouseEvent.CLICK, leggTilListe)

function leggTilListe(evt:MouseEvent)




gulost.navn = "Gulost";
gulost.kcal = Number(53) * numStepOst.value;
gulost.protein = Number(4) * numStepOst.value;
gulost.fett = Number(4.2) * numStepOst.value;
gulost.karbohydrater = Number(0) * numStepOst.value;
gulost.label = String(numStepOst.value) + " " + "skiver ost";

liste.addItem(gulost);

如果数字步进值为 2,那么这会将“2skiver ost”添加到列表组件中。如果我再次单击该按钮,它将在前一个下方添加另一行“2skiver ost”。如何让这些堆叠而不是创建单独的标签?

// 如果有人需要仔细查看或不明白我的意思,这里是完整的 FLA 文件 :) https://drive.google.com/file/d/0B-U9O7J7V4bFQnpIMmhReE9yLTQ/view

【问题讨论】:

首先你所说的“堆栈”是什么意思?您的意思是总和数值,附加/前置项目(如方法名称 addItem 所建议的那样)?每次单击时,您只会创建一个具有新值的新(未键入)对象(取决于步进器值)。这是你应该修改的 addItem ,但我不知道它现在在做什么(发布代码),也不知道你到底想要它做什么 第一次单击将项目添加到列表中,但我希望额外的单击不会创建另一个项目,而是将数字步进器中的附加值添加到第一次单击添加的项目中。我可以发布完整的代码,但它大约有 100 行。 【参考方案1】:

您已经创建了一个局部变量。它仅在函数中可见。尝试在外面初始化gulost

var gulost:Object = new Object;
btn.addEventListener(MouseEvent.CLICK, leggTilListe)

function leggTilListe (e:MouseEvent) 
    //...Put your listener code here...

【讨论】:

是的,我理解,但是当我在外部将其初始化为全局变量时,它不会改变应用程序的任何内容。 您能否使用这些源更改更新您的问题消息? 如果我理解正确,现在应该更新。

以上是关于AS3 使用列表组件和 MouseEvent 监听器的主要内容,如果未能解决你的问题,请参考以下文章

使用 printJob 时 MouseEvent 出现问题

AS3 MouseEvent.RIGHT_MOUSE_UP 不起作用

删除所选项目列表框AS3

as3.0 判断圆圈正转还是倒转

as3 判断鼠标移动方向

十三周总结