繁体   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