2014-11-22 119 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