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