[英]Flash Button Linking and Toggle
单击3个按钮之一显示总价格输出。文本每个按钮显示不同的价格。
当前用于每个按钮的代码:
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)值设置为something..99或其他值。 然后,如果我在第二组5个按钮中切换1个按钮,它将在第二个Number(1.2)中设置值。 然后从那里。 这两个切换后的btn2和btn3将使total.text中的总数相乘。
我看到我可以在其中制造一堆带有计算值的按钮。 但我肯定有更清洁的方法可以做到这一点。 我是Flash方面的新手,只是在这里寻找方向。 这一定非常棒。
编辑:做了一点研究。 希望我朝着正确的方向前进
好的,添加了可变数字,例如
var modifier1:Number = 99;
var modifier2:Number = 1.2;
然后从像
var a:Number = Number(modifier1) * Number(modifier2);
现在研究如何使modifier1实际链接到按钮的切换状态,并为其分配一个值,例如99表示已切换,1表示未设置。
我建议为您的所有按钮创建一个小类,其中应包含其value 。 您还需要一个包含这些按钮列表的对象,我们将其称为Application 。 当用户单击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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.