单击3个按钮之一显示total.text中的价格输出 每个按钮显示不同的价格。
目前用于每个按钮的代码:
1 btn1.addEventListener(MouseEvent.CLICK, myButtonClick);
2
3 function myButtonClick(ev:MouseEvent):void
4 {
5 var a:Number = Number(99) * Number(1.2);
6 total.text = String(a);
7 }
8
9 btn2.addEventListener(MouseEvent.CLICK, myButtonClick);
10
11 function myButtonClick(ev:MouseEvent):void
12 {
13 var b:Number = Number(99) * Number(1.4);
14 total.text = String(b);
15 }
16
17 btn3.addEventListener(MouseEvent.CLICK, myButtonClick);
18
19 function myButtonClick(ev:MouseEvent):void
20 {
21 var c:Number = Number(99) * Number(1.6);
22 total.text = String(c);
23 }
24
它工作正常,但我真的想添加按钮2和/或3的值,如果切换到按钮1的值并显示在total.text
最终,我试图选择5个按钮来切换1。该切换将使用某些东西设置初始Number(99)值。或者不是。然后,如果我在第二组5个按钮中切换1个按钮,它将在第二个数字(1.2)中设置值。从那里。两个切换的btn2和btn3将乘以total.text中的总数。
我知道在哪里可以制作一大堆按计算值的按钮。但我确定有一个更清洁的方法来做到这一点。 我是闪光灯的新手,只是在这里寻找方向。它会很棒。
编辑:做了一点研究。希望我朝着正确的方向前进
好的,添加了像
这样的变量号var modifier1:Number = 99;
var modifier2:Number = 1.2;
然后调用像
这样的函数var a:Number = Number(modifier1) * Number(modifier2);
现在研究如何使modifier1实际链接到按钮的切换状态,并为其指定一个值为99,用于切换,1为不用。
答案 0 :(得分:0)
我建议为所有按钮创建一个小类,它应包含值。您还需要一个包含这些按钮列表的对象,我们将其称为应用程序。当用户单击Button1时,它将在Application中设置一个字段,指示切换 - 所有值的乘积或仅按下按钮。然后将实际文本设置为传递给的任何内容(我称之为valueText)。
http://puu.sh/d1hP7/e25228352b.png
这里有一些快速代码,我还没有测试它是否真的有效,但它应该很容易理解:
class Button {
private var app:Application;
public var value:Number;
public function Button(app:Application, value:Number) {
this.app = app;
this.value = value;
this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
}
private function mouseDown(e:MouseEvent):void {
app.displayText(value);
}
}
class Application {
private var buttonList:Vector.<Button> = new Vector.<Button>();
public var isToggleOn:Boolean = false;
public function Application() {
buttonList.push(new Button(this, 0.98));
buttonList.push(new Button(this, 0.75));
buttonList.push(new Button(this, 0.88));
}
public function getProduct():Number {
var sum:Number = 0;
for(var button:Button in buttonList) {
sum += button.value;
}
return sum;
}
public function displayText(value:Number):void {
valueText.text = isToggleOn ? getProduct() : value;
}
}