2014-11-22 84 views
0

单击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 

它工作得很好,但我确实想如果切换到按钮1的值添加按钮2和/或3的值,并显示它在总.text

最后,我想要选择5个按钮切换1。该切换将设置初始数字(99)的值与东西..或什么不是。然后如果我在第二组的5个按钮中切换1个按钮,它将在第二个数字(1.2)中设置值。并从那里。两个切换的btn2和btn3将总和乘以total.text。

我看到哪里可以制作一大堆带有计算值的按钮。但我确定有一个更干净的方法来做到这一点。 我是一个总是新手在闪光,只是有点在这里寻找一个方向。这一定非常棒。

编辑:做了一点研究。希望我的标题在正确的方向

OK,增加可变数目一样

var modifier1:Number = 99; 
var modifier2:Number = 1.2; 

则呼吁那些从功能类似

var a:Number = Number(modifier1) * Number(modifier2); 

现在研究如何使modifier1实际上链接直到切换按钮的状态,并为其指定一个值为99的切换值和1为非切换值。

回答

0

我建议为所有按钮创建一个小类,它应包含其值为的值。您还需要一个包含这些按钮列表的对象,我们称之为应用程序。当用户点击Button1时,它将在应用程序内设置一个字段,指示切换 - 所有值的乘积或者只是按下的按钮。这然后将实际文本设置为任何通过(我称之为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; 
    } 
} 
+0

感谢。生病看看它,看看我现在可以破坏:) – Crawfishdaddy 2014-11-22 21:28:35

+0

最初它不喜欢布尔isToggleOn = false;给出语法错误。但不适合谷歌的一些东西。正如我所说,我是一个新手:)我喜欢流程图,我可以看到你在那里说什么。说得通。 – Crawfishdaddy 2014-11-22 23:38:02

+0

啊,没错,最近我一直在做太多的C++。 AS3中的语法将使它成为'var isToggleOn:Boolean = false;' – Iggy 2014-11-23 18:47:07