2012-01-07 22 views
2

我怎麼寫在Flex中內嵌條件語句有兩個表達式(情況)如何在Flex中使用兩個表達式(case)編寫內聯條件語句?

text="{expression, expression2 ? true:false}" 

Flex編譯器只檢查給result.But我要同時檢查第一個表達式並代表該聲明並顯示結果。如果沒有條件滿足,則什麼也不做。

+3

或許像'text =((expression)&&(expression2))? true:false;'或'text =((expression)||(expression2))? true:false;'。 – Taurayi 2012-01-07 14:32:41

回答

0

如果您希望他們在一個if聲明中,請分別使用andor運算符:``,分別使用運算符&&~ and‖。例如:

var x:int = 6 
if (x > 3 && x < 10) { 
    trace("both are true, so its contents will be acted on."); 
} 

var bob:Boolean = true; 
if (x > 10 || bob) { 
    trace("x > 10 is false, but bob is true, so this will also be acted on."); 
} 

您也可以使用返回布爾

function y (z:int):Boolean { 
    if (z < 10) { 
     return false; 
    } else { 
     return true; 
    } 
} 

其實功能,我可以簡化到

function y (z:int) { 
    return z >= 10; 
} 

然後使用功能的一組條件:

if (x < 5 && y(x)) { trace ("something here"); } 

布爾值如果分配給或與串連接,則轉換爲字符串。

+0

請注意,我想寫在MXML不在行動腳本3. – 2012-01-08 07:35:57

+1

我很困惑,這是公認的答案?那麼爲什麼我的選票被拒絕了,它差不多是一樣的。 – Taurayi 2012-01-08 14:44:52

0

我會寫下面的語句來代替:

var expression1:Boolean; 
var expression2:Boolean; 
var result:Boolean; 

expression1 = condition?true:false; 
expression2 = anotherCondition?true:false; 

result = expression1&&expression2; 
+0

我想在mxml中的解決方案不在動作腳本3 – 2012-01-08 07:36:31

10

如果我正確理解你的問題之一:

text = ((expression) && (expression2)) ? true : false;

text = ((expression) || (expression2)) ? true : false;

[更新1]

好吧,我說要麼,但第一次測試,看看這兩個條件是否屬實,第二次測試,如果任何條件是真的,我相信是你想要的。

[UPDATE 2]

一個例子

((1.1 is int) && (1.1 is Number)) ? true : false;

這會給你假作爲表達(1.1 is int)是假的,並且兩個表達式必須是真實的返回true。

((1.1 is int) || (1.1 is Number)) ? true : false;

這將返回true作爲表達(1.1 is Number)是真實的,只有一個表達式爲true返回true。

[最後更新]

最後一個例子:

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx"> 

    <fx:Declarations> 
     <!-- Place non-visual elements (e.g., services, value objects) here --> 
    </fx:Declarations> 
    <s:VGroup> 
     <s:Label id="label1" text="{((1.1 is int) &amp;&amp; (1.1 is Number)) ? 'true' : 'false'}"></s:Label> 
     <s:Label id="label2" text="{((1.1 is int) || (1.1 is Number)) ? 'true' : 'false'}"></s:Label> 
    </s:VGroup> 
</s:Application> 

因爲你,如果你使用&&得到一個錯誤,或者你可以使用&amp;&amp;

+0

@wvxw我不確定你的意思,如果你是一個低估了我的答案的人,你能向我解釋我的答案是錯的嗎?我的回答可能是錯誤的,但我不明白你在評論中對你的回答所說的話是錯的。 – Taurayi 2012-01-07 16:56:15

+0

簡單的詞我有三個條件的數據 – 2012-01-08 07:37:42

+0

1st - true,2nd - false和3rd不是真的不是假的,所以我指出如果我只在我的問題表達式和表達式中實現兩個條件。文本根據那個填充,如果表達式2是匹配的文本填充根據,但現在它只檢查第一個條件,並代表該填充結果。 – 2012-01-08 07:40:58

5

有多種方法數,你可以寫這樣的:

(condition1 && condition2) ? statement if true : statement if false

,但如果你想執行的MXML組件綁定此代碼,則必須使用:

'&amp &amp'代替&&'&lt'而不是<

+0

是的,那很好,但你能提供一個例子在mxml中的代碼? – 2012-01-08 07:47:34

+0

@TahirAlvi @TahirAlvi這裏是代碼,假設你有一個按鈕,並且你希望當它的名字和姓氏包含文本時將其enable屬性設置爲true。 2012-01-08 22:51:35

+0

@TahirAlvi如果您有任何問題隨時問,我insha真主絕對盡我所能。謝謝 – 2012-01-08 22:58:49

相關問題