簡體   English   中英

閃光按鈕鏈接和切換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM