我如何使用两个表达式(case)在Flex中编写内联条件语句?

Tah*_*lvi 3 apache-flex mxml actionscript-3 flash-builder

我如何使用两个表达式在Flex中编写内联条件语句(case)

喜欢

text="{expression, expression2 ? true:false}"
Run Code Online (Sandbox Code Playgroud)

Flex编译器只检查第一个表达式并代表给出结果.但我想检查语句和显示结果.如果没有条件,那么什么也不做.

Tau*_*ayi 11

如果我正确理解你的问题:

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

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

[更新1]

好吧我也说,但是第一次测试看看两个条件是否都是真的,第二次测试是否两种条件都是真的,我认为是你想要的.

[更新2]

一个例子

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

当表达式(1.1 is int)为false时,这将给出false,并且两个表达式都必须为true才能返回true.

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

当表达式(1.1 is Number)为true时,这将返回true ,并且只有一个表达式必须为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> 
Run Code Online (Sandbox Code Playgroud)

因为如果您使用&&备选,则会出现错误,您可以使用&amp;&amp;.

  • 哦,好吧,我很确定你在谈论与我的答案无关的事情,因此你的downvote是不合理的,这就是我想知道的. (2认同)

小智 5

有很多方法,你可以这样写:

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

但是如果要在mxml组件绑定中执行此代码,则必须使用:

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